home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / lib / python2.5 / site-packages / xapian.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-29  |  218KB  |  5,637 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.5)
  3.  
  4. import _xapian
  5. import new
  6. new_instancemethod = new.instancemethod
  7.  
  8. try:
  9.     _swig_property = property
  10. except NameError:
  11.     pass
  12.  
  13.  
  14. def _swig_setattr_nondynamic(self, class_type, name, value, static = 1):
  15.     if name == 'thisown':
  16.         return self.this.own(value)
  17.     
  18.     if name == 'this':
  19.         if type(value).__name__ == 'PySwigObject':
  20.             self.__dict__[name] = value
  21.             return None
  22.         
  23.     
  24.     method = class_type.__swig_setmethods__.get(name, None)
  25.     if method:
  26.         return method(self, value)
  27.     
  28.     if not static or hasattr(self, name):
  29.         self.__dict__[name] = value
  30.     else:
  31.         raise AttributeError('You cannot add attributes to %s' % self)
  32.  
  33.  
  34. def _swig_setattr(self, class_type, name, value):
  35.     return _swig_setattr_nondynamic(self, class_type, name, value, 0)
  36.  
  37.  
  38. def _swig_getattr(self, class_type, name):
  39.     if name == 'thisown':
  40.         return self.this.own()
  41.     
  42.     method = class_type.__swig_getmethods__.get(name, None)
  43.     if method:
  44.         return method(self)
  45.     
  46.     raise AttributeError, name
  47.  
  48.  
  49. def _swig_repr(self):
  50.     
  51.     try:
  52.         strthis = 'proxy of ' + self.this.__repr__()
  53.     except:
  54.         strthis = ''
  55.  
  56.     return '<%s.%s; %s >' % (self.__class__.__module__, self.__class__.__name__, strthis)
  57.  
  58. import types
  59.  
  60. try:
  61.     _object = types.ObjectType
  62.     _newclass = 1
  63. except AttributeError:
  64.     
  65.     class _object:
  66.         pass
  67.  
  68.     _newclass = 0
  69.  
  70. del types
  71.  
  72. def _swig_setattr_nondynamic_method(set):
  73.     
  74.     def set_attr(self, name, value):
  75.         if name == 'thisown':
  76.             return self.this.own(value)
  77.         
  78.         if hasattr(self, name) or name == 'this':
  79.             set(self, name, value)
  80.         else:
  81.             raise AttributeError('You cannot add attributes to %s' % self)
  82.  
  83.     return set_attr
  84.  
  85.  
  86. try:
  87.     import weakref
  88.     weakref_proxy = weakref.proxy
  89. except:
  90.     
  91.     weakref_proxy = lambda x: x
  92.  
  93.  
  94. class PySwigIterator(object):
  95.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  96.     
  97.     def __init__(self):
  98.         raise AttributeError, 'No constructor defined'
  99.  
  100.     __repr__ = _swig_repr
  101.     __swig_destroy__ = _xapian.delete_PySwigIterator
  102.     
  103.     def __iter__(self):
  104.         return self
  105.  
  106.  
  107. PySwigIterator.value = new_instancemethod(_xapian.PySwigIterator_value, None, PySwigIterator)
  108. PySwigIterator.incr = new_instancemethod(_xapian.PySwigIterator_incr, None, PySwigIterator)
  109. PySwigIterator.decr = new_instancemethod(_xapian.PySwigIterator_decr, None, PySwigIterator)
  110. PySwigIterator.distance = new_instancemethod(_xapian.PySwigIterator_distance, None, PySwigIterator)
  111. PySwigIterator.equal = new_instancemethod(_xapian.PySwigIterator_equal, None, PySwigIterator)
  112. PySwigIterator.copy = new_instancemethod(_xapian.PySwigIterator_copy, None, PySwigIterator)
  113. PySwigIterator.next = new_instancemethod(_xapian.PySwigIterator_next, None, PySwigIterator)
  114. PySwigIterator.previous = new_instancemethod(_xapian.PySwigIterator_previous, None, PySwigIterator)
  115. PySwigIterator.advance = new_instancemethod(_xapian.PySwigIterator_advance, None, PySwigIterator)
  116. PySwigIterator.__eq__ = new_instancemethod(_xapian.PySwigIterator___eq__, None, PySwigIterator)
  117. PySwigIterator.__ne__ = new_instancemethod(_xapian.PySwigIterator___ne__, None, PySwigIterator)
  118. PySwigIterator.__iadd__ = new_instancemethod(_xapian.PySwigIterator___iadd__, None, PySwigIterator)
  119. PySwigIterator.__isub__ = new_instancemethod(_xapian.PySwigIterator___isub__, None, PySwigIterator)
  120. PySwigIterator.__add__ = new_instancemethod(_xapian.PySwigIterator___add__, None, PySwigIterator)
  121. PySwigIterator.__sub__ = new_instancemethod(_xapian.PySwigIterator___sub__, None, PySwigIterator)
  122. PySwigIterator_swigregister = _xapian.PySwigIterator_swigregister
  123. PySwigIterator_swigregister(PySwigIterator)
  124. MSET_DID = _xapian.MSET_DID
  125. MSET_WT = _xapian.MSET_WT
  126. MSET_RANK = _xapian.MSET_RANK
  127. MSET_PERCENT = _xapian.MSET_PERCENT
  128. MSET_DOCUMENT = _xapian.MSET_DOCUMENT
  129. ESET_TNAME = _xapian.ESET_TNAME
  130. ESET_WT = _xapian.ESET_WT
  131.  
  132. class Error(Exception):
  133.     __swig_setmethods__ = { }
  134.     
  135.     __setattr__ = lambda self, name, value: _swig_setattr(self, Error, name, value)
  136.     __swig_getmethods__ = { }
  137.     
  138.     __getattr__ = lambda self, name: _swig_getattr(self, Error, name)
  139.     
  140.     def __init__(self):
  141.         raise AttributeError, 'No constructor defined'
  142.  
  143.     __repr__ = _swig_repr
  144.     __swig_destroy__ = _xapian.delete_Error
  145.  
  146. Error.get_type = new_instancemethod(_xapian.Error_get_type, None, Error)
  147. Error.get_msg = new_instancemethod(_xapian.Error_get_msg, None, Error)
  148. Error.get_context = new_instancemethod(_xapian.Error_get_context, None, Error)
  149. Error.get_error_string = new_instancemethod(_xapian.Error_get_error_string, None, Error)
  150. Error.get_errno = new_instancemethod(_xapian.Error_get_errno, None, Error)
  151. Error.__str__ = new_instancemethod(_xapian.Error___str__, None, Error)
  152. Error_swigregister = _xapian.Error_swigregister
  153. Error_swigregister(Error)
  154.  
  155. class LogicError(Error):
  156.     __swig_setmethods__ = { }
  157.     for _s in [
  158.         Error]:
  159.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  160.     
  161.     
  162.     __setattr__ = lambda self, name, value: _swig_setattr(self, LogicError, name, value)
  163.     __swig_getmethods__ = { }
  164.     for _s in [
  165.         Error]:
  166.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  167.     
  168.     
  169.     __getattr__ = lambda self, name: _swig_getattr(self, LogicError, name)
  170.     
  171.     def __init__(self):
  172.         raise AttributeError, 'No constructor defined'
  173.  
  174.     __repr__ = _swig_repr
  175.     __swig_destroy__ = _xapian.delete_LogicError
  176.  
  177. LogicError_swigregister = _xapian.LogicError_swigregister
  178. LogicError_swigregister(LogicError)
  179.  
  180. class RuntimeError(Error):
  181.     __swig_setmethods__ = { }
  182.     for _s in [
  183.         Error]:
  184.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  185.     
  186.     
  187.     __setattr__ = lambda self, name, value: _swig_setattr(self, RuntimeError, name, value)
  188.     __swig_getmethods__ = { }
  189.     for _s in [
  190.         Error]:
  191.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  192.     
  193.     
  194.     __getattr__ = lambda self, name: _swig_getattr(self, RuntimeError, name)
  195.     
  196.     def __init__(self):
  197.         raise AttributeError, 'No constructor defined'
  198.  
  199.     __repr__ = _swig_repr
  200.     __swig_destroy__ = _xapian.delete_RuntimeError
  201.  
  202. RuntimeError_swigregister = _xapian.RuntimeError_swigregister
  203. RuntimeError_swigregister(RuntimeError)
  204.  
  205. class AssertionError(LogicError):
  206.     __swig_setmethods__ = { }
  207.     for _s in [
  208.         LogicError]:
  209.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  210.     
  211.     
  212.     __setattr__ = lambda self, name, value: _swig_setattr(self, AssertionError, name, value)
  213.     __swig_getmethods__ = { }
  214.     for _s in [
  215.         LogicError]:
  216.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  217.     
  218.     
  219.     __getattr__ = lambda self, name: _swig_getattr(self, AssertionError, name)
  220.     __repr__ = _swig_repr
  221.     
  222.     def __init__(self, *args):
  223.         _xapian.AssertionError_swiginit(self, _xapian.new_AssertionError(*args))
  224.  
  225.     __swig_destroy__ = _xapian.delete_AssertionError
  226.  
  227. AssertionError_swigregister = _xapian.AssertionError_swigregister
  228. AssertionError_swigregister(AssertionError)
  229.  
  230. class InvalidArgumentError(LogicError):
  231.     __swig_setmethods__ = { }
  232.     for _s in [
  233.         LogicError]:
  234.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  235.     
  236.     
  237.     __setattr__ = lambda self, name, value: _swig_setattr(self, InvalidArgumentError, name, value)
  238.     __swig_getmethods__ = { }
  239.     for _s in [
  240.         LogicError]:
  241.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  242.     
  243.     
  244.     __getattr__ = lambda self, name: _swig_getattr(self, InvalidArgumentError, name)
  245.     __repr__ = _swig_repr
  246.     
  247.     def __init__(self, *args):
  248.         _xapian.InvalidArgumentError_swiginit(self, _xapian.new_InvalidArgumentError(*args))
  249.  
  250.     __swig_destroy__ = _xapian.delete_InvalidArgumentError
  251.  
  252. InvalidArgumentError_swigregister = _xapian.InvalidArgumentError_swigregister
  253. InvalidArgumentError_swigregister(InvalidArgumentError)
  254.  
  255. class InvalidOperationError(LogicError):
  256.     __swig_setmethods__ = { }
  257.     for _s in [
  258.         LogicError]:
  259.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  260.     
  261.     
  262.     __setattr__ = lambda self, name, value: _swig_setattr(self, InvalidOperationError, name, value)
  263.     __swig_getmethods__ = { }
  264.     for _s in [
  265.         LogicError]:
  266.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  267.     
  268.     
  269.     __getattr__ = lambda self, name: _swig_getattr(self, InvalidOperationError, name)
  270.     __repr__ = _swig_repr
  271.     
  272.     def __init__(self, *args):
  273.         _xapian.InvalidOperationError_swiginit(self, _xapian.new_InvalidOperationError(*args))
  274.  
  275.     __swig_destroy__ = _xapian.delete_InvalidOperationError
  276.  
  277. InvalidOperationError_swigregister = _xapian.InvalidOperationError_swigregister
  278. InvalidOperationError_swigregister(InvalidOperationError)
  279.  
  280. class UnimplementedError(LogicError):
  281.     __swig_setmethods__ = { }
  282.     for _s in [
  283.         LogicError]:
  284.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  285.     
  286.     
  287.     __setattr__ = lambda self, name, value: _swig_setattr(self, UnimplementedError, name, value)
  288.     __swig_getmethods__ = { }
  289.     for _s in [
  290.         LogicError]:
  291.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  292.     
  293.     
  294.     __getattr__ = lambda self, name: _swig_getattr(self, UnimplementedError, name)
  295.     __repr__ = _swig_repr
  296.     
  297.     def __init__(self, *args):
  298.         _xapian.UnimplementedError_swiginit(self, _xapian.new_UnimplementedError(*args))
  299.  
  300.     __swig_destroy__ = _xapian.delete_UnimplementedError
  301.  
  302. UnimplementedError_swigregister = _xapian.UnimplementedError_swigregister
  303. UnimplementedError_swigregister(UnimplementedError)
  304.  
  305. class DatabaseError(RuntimeError):
  306.     __swig_setmethods__ = { }
  307.     for _s in [
  308.         RuntimeError]:
  309.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  310.     
  311.     
  312.     __setattr__ = lambda self, name, value: _swig_setattr(self, DatabaseError, name, value)
  313.     __swig_getmethods__ = { }
  314.     for _s in [
  315.         RuntimeError]:
  316.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  317.     
  318.     
  319.     __getattr__ = lambda self, name: _swig_getattr(self, DatabaseError, name)
  320.     __repr__ = _swig_repr
  321.     
  322.     def __init__(self, *args):
  323.         _xapian.DatabaseError_swiginit(self, _xapian.new_DatabaseError(*args))
  324.  
  325.     __swig_destroy__ = _xapian.delete_DatabaseError
  326.  
  327. DatabaseError_swigregister = _xapian.DatabaseError_swigregister
  328. DatabaseError_swigregister(DatabaseError)
  329.  
  330. class DatabaseCorruptError(DatabaseError):
  331.     __swig_setmethods__ = { }
  332.     for _s in [
  333.         DatabaseError]:
  334.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  335.     
  336.     
  337.     __setattr__ = lambda self, name, value: _swig_setattr(self, DatabaseCorruptError, name, value)
  338.     __swig_getmethods__ = { }
  339.     for _s in [
  340.         DatabaseError]:
  341.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  342.     
  343.     
  344.     __getattr__ = lambda self, name: _swig_getattr(self, DatabaseCorruptError, name)
  345.     __repr__ = _swig_repr
  346.     
  347.     def __init__(self, *args):
  348.         _xapian.DatabaseCorruptError_swiginit(self, _xapian.new_DatabaseCorruptError(*args))
  349.  
  350.     __swig_destroy__ = _xapian.delete_DatabaseCorruptError
  351.  
  352. DatabaseCorruptError_swigregister = _xapian.DatabaseCorruptError_swigregister
  353. DatabaseCorruptError_swigregister(DatabaseCorruptError)
  354.  
  355. class DatabaseCreateError(DatabaseError):
  356.     __swig_setmethods__ = { }
  357.     for _s in [
  358.         DatabaseError]:
  359.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  360.     
  361.     
  362.     __setattr__ = lambda self, name, value: _swig_setattr(self, DatabaseCreateError, name, value)
  363.     __swig_getmethods__ = { }
  364.     for _s in [
  365.         DatabaseError]:
  366.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  367.     
  368.     
  369.     __getattr__ = lambda self, name: _swig_getattr(self, DatabaseCreateError, name)
  370.     __repr__ = _swig_repr
  371.     
  372.     def __init__(self, *args):
  373.         _xapian.DatabaseCreateError_swiginit(self, _xapian.new_DatabaseCreateError(*args))
  374.  
  375.     __swig_destroy__ = _xapian.delete_DatabaseCreateError
  376.  
  377. DatabaseCreateError_swigregister = _xapian.DatabaseCreateError_swigregister
  378. DatabaseCreateError_swigregister(DatabaseCreateError)
  379.  
  380. class DatabaseLockError(DatabaseError):
  381.     __swig_setmethods__ = { }
  382.     for _s in [
  383.         DatabaseError]:
  384.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  385.     
  386.     
  387.     __setattr__ = lambda self, name, value: _swig_setattr(self, DatabaseLockError, name, value)
  388.     __swig_getmethods__ = { }
  389.     for _s in [
  390.         DatabaseError]:
  391.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  392.     
  393.     
  394.     __getattr__ = lambda self, name: _swig_getattr(self, DatabaseLockError, name)
  395.     __repr__ = _swig_repr
  396.     
  397.     def __init__(self, *args):
  398.         _xapian.DatabaseLockError_swiginit(self, _xapian.new_DatabaseLockError(*args))
  399.  
  400.     __swig_destroy__ = _xapian.delete_DatabaseLockError
  401.  
  402. DatabaseLockError_swigregister = _xapian.DatabaseLockError_swigregister
  403. DatabaseLockError_swigregister(DatabaseLockError)
  404.  
  405. class DatabaseModifiedError(DatabaseError):
  406.     __swig_setmethods__ = { }
  407.     for _s in [
  408.         DatabaseError]:
  409.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  410.     
  411.     
  412.     __setattr__ = lambda self, name, value: _swig_setattr(self, DatabaseModifiedError, name, value)
  413.     __swig_getmethods__ = { }
  414.     for _s in [
  415.         DatabaseError]:
  416.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  417.     
  418.     
  419.     __getattr__ = lambda self, name: _swig_getattr(self, DatabaseModifiedError, name)
  420.     __repr__ = _swig_repr
  421.     
  422.     def __init__(self, *args):
  423.         _xapian.DatabaseModifiedError_swiginit(self, _xapian.new_DatabaseModifiedError(*args))
  424.  
  425.     __swig_destroy__ = _xapian.delete_DatabaseModifiedError
  426.  
  427. DatabaseModifiedError_swigregister = _xapian.DatabaseModifiedError_swigregister
  428. DatabaseModifiedError_swigregister(DatabaseModifiedError)
  429.  
  430. class DatabaseOpeningError(DatabaseError):
  431.     __swig_setmethods__ = { }
  432.     for _s in [
  433.         DatabaseError]:
  434.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  435.     
  436.     
  437.     __setattr__ = lambda self, name, value: _swig_setattr(self, DatabaseOpeningError, name, value)
  438.     __swig_getmethods__ = { }
  439.     for _s in [
  440.         DatabaseError]:
  441.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  442.     
  443.     
  444.     __getattr__ = lambda self, name: _swig_getattr(self, DatabaseOpeningError, name)
  445.     __repr__ = _swig_repr
  446.     
  447.     def __init__(self, *args):
  448.         _xapian.DatabaseOpeningError_swiginit(self, _xapian.new_DatabaseOpeningError(*args))
  449.  
  450.     __swig_destroy__ = _xapian.delete_DatabaseOpeningError
  451.  
  452. DatabaseOpeningError_swigregister = _xapian.DatabaseOpeningError_swigregister
  453. DatabaseOpeningError_swigregister(DatabaseOpeningError)
  454.  
  455. class DatabaseVersionError(DatabaseOpeningError):
  456.     __swig_setmethods__ = { }
  457.     for _s in [
  458.         DatabaseOpeningError]:
  459.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  460.     
  461.     
  462.     __setattr__ = lambda self, name, value: _swig_setattr(self, DatabaseVersionError, name, value)
  463.     __swig_getmethods__ = { }
  464.     for _s in [
  465.         DatabaseOpeningError]:
  466.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  467.     
  468.     
  469.     __getattr__ = lambda self, name: _swig_getattr(self, DatabaseVersionError, name)
  470.     __repr__ = _swig_repr
  471.     
  472.     def __init__(self, *args):
  473.         _xapian.DatabaseVersionError_swiginit(self, _xapian.new_DatabaseVersionError(*args))
  474.  
  475.     __swig_destroy__ = _xapian.delete_DatabaseVersionError
  476.  
  477. DatabaseVersionError_swigregister = _xapian.DatabaseVersionError_swigregister
  478. DatabaseVersionError_swigregister(DatabaseVersionError)
  479.  
  480. class DocNotFoundError(RuntimeError):
  481.     __swig_setmethods__ = { }
  482.     for _s in [
  483.         RuntimeError]:
  484.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  485.     
  486.     
  487.     __setattr__ = lambda self, name, value: _swig_setattr(self, DocNotFoundError, name, value)
  488.     __swig_getmethods__ = { }
  489.     for _s in [
  490.         RuntimeError]:
  491.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  492.     
  493.     
  494.     __getattr__ = lambda self, name: _swig_getattr(self, DocNotFoundError, name)
  495.     __repr__ = _swig_repr
  496.     
  497.     def __init__(self, *args):
  498.         _xapian.DocNotFoundError_swiginit(self, _xapian.new_DocNotFoundError(*args))
  499.  
  500.     __swig_destroy__ = _xapian.delete_DocNotFoundError
  501.  
  502. DocNotFoundError_swigregister = _xapian.DocNotFoundError_swigregister
  503. DocNotFoundError_swigregister(DocNotFoundError)
  504.  
  505. class FeatureUnavailableError(RuntimeError):
  506.     __swig_setmethods__ = { }
  507.     for _s in [
  508.         RuntimeError]:
  509.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  510.     
  511.     
  512.     __setattr__ = lambda self, name, value: _swig_setattr(self, FeatureUnavailableError, name, value)
  513.     __swig_getmethods__ = { }
  514.     for _s in [
  515.         RuntimeError]:
  516.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  517.     
  518.     
  519.     __getattr__ = lambda self, name: _swig_getattr(self, FeatureUnavailableError, name)
  520.     __repr__ = _swig_repr
  521.     
  522.     def __init__(self, *args):
  523.         _xapian.FeatureUnavailableError_swiginit(self, _xapian.new_FeatureUnavailableError(*args))
  524.  
  525.     __swig_destroy__ = _xapian.delete_FeatureUnavailableError
  526.  
  527. FeatureUnavailableError_swigregister = _xapian.FeatureUnavailableError_swigregister
  528. FeatureUnavailableError_swigregister(FeatureUnavailableError)
  529.  
  530. class InternalError(RuntimeError):
  531.     __swig_setmethods__ = { }
  532.     for _s in [
  533.         RuntimeError]:
  534.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  535.     
  536.     
  537.     __setattr__ = lambda self, name, value: _swig_setattr(self, InternalError, name, value)
  538.     __swig_getmethods__ = { }
  539.     for _s in [
  540.         RuntimeError]:
  541.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  542.     
  543.     
  544.     __getattr__ = lambda self, name: _swig_getattr(self, InternalError, name)
  545.     __repr__ = _swig_repr
  546.     
  547.     def __init__(self, *args):
  548.         _xapian.InternalError_swiginit(self, _xapian.new_InternalError(*args))
  549.  
  550.     __swig_destroy__ = _xapian.delete_InternalError
  551.  
  552. InternalError_swigregister = _xapian.InternalError_swigregister
  553. InternalError_swigregister(InternalError)
  554.  
  555. class NetworkError(RuntimeError):
  556.     __swig_setmethods__ = { }
  557.     for _s in [
  558.         RuntimeError]:
  559.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  560.     
  561.     
  562.     __setattr__ = lambda self, name, value: _swig_setattr(self, NetworkError, name, value)
  563.     __swig_getmethods__ = { }
  564.     for _s in [
  565.         RuntimeError]:
  566.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  567.     
  568.     
  569.     __getattr__ = lambda self, name: _swig_getattr(self, NetworkError, name)
  570.     __repr__ = _swig_repr
  571.     
  572.     def __init__(self, *args):
  573.         _xapian.NetworkError_swiginit(self, _xapian.new_NetworkError(*args))
  574.  
  575.     __swig_destroy__ = _xapian.delete_NetworkError
  576.  
  577. NetworkError_swigregister = _xapian.NetworkError_swigregister
  578. NetworkError_swigregister(NetworkError)
  579.  
  580. class NetworkTimeoutError(NetworkError):
  581.     __swig_setmethods__ = { }
  582.     for _s in [
  583.         NetworkError]:
  584.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  585.     
  586.     
  587.     __setattr__ = lambda self, name, value: _swig_setattr(self, NetworkTimeoutError, name, value)
  588.     __swig_getmethods__ = { }
  589.     for _s in [
  590.         NetworkError]:
  591.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  592.     
  593.     
  594.     __getattr__ = lambda self, name: _swig_getattr(self, NetworkTimeoutError, name)
  595.     __repr__ = _swig_repr
  596.     
  597.     def __init__(self, *args):
  598.         _xapian.NetworkTimeoutError_swiginit(self, _xapian.new_NetworkTimeoutError(*args))
  599.  
  600.     __swig_destroy__ = _xapian.delete_NetworkTimeoutError
  601.  
  602. NetworkTimeoutError_swigregister = _xapian.NetworkTimeoutError_swigregister
  603. NetworkTimeoutError_swigregister(NetworkTimeoutError)
  604.  
  605. class QueryParserError(RuntimeError):
  606.     __swig_setmethods__ = { }
  607.     for _s in [
  608.         RuntimeError]:
  609.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  610.     
  611.     
  612.     __setattr__ = lambda self, name, value: _swig_setattr(self, QueryParserError, name, value)
  613.     __swig_getmethods__ = { }
  614.     for _s in [
  615.         RuntimeError]:
  616.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  617.     
  618.     
  619.     __getattr__ = lambda self, name: _swig_getattr(self, QueryParserError, name)
  620.     __repr__ = _swig_repr
  621.     
  622.     def __init__(self, *args):
  623.         _xapian.QueryParserError_swiginit(self, _xapian.new_QueryParserError(*args))
  624.  
  625.     __swig_destroy__ = _xapian.delete_QueryParserError
  626.  
  627. QueryParserError_swigregister = _xapian.QueryParserError_swigregister
  628. QueryParserError_swigregister(QueryParserError)
  629.  
  630. class RangeError(RuntimeError):
  631.     __swig_setmethods__ = { }
  632.     for _s in [
  633.         RuntimeError]:
  634.         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', { }))
  635.     
  636.     
  637.     __setattr__ = lambda self, name, value: _swig_setattr(self, RangeError, name, value)
  638.     __swig_getmethods__ = { }
  639.     for _s in [
  640.         RuntimeError]:
  641.         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', { }))
  642.     
  643.     
  644.     __getattr__ = lambda self, name: _swig_getattr(self, RangeError, name)
  645.     __repr__ = _swig_repr
  646.     
  647.     def __init__(self, *args):
  648.         _xapian.RangeError_swiginit(self, _xapian.new_RangeError(*args))
  649.  
  650.     __swig_destroy__ = _xapian.delete_RangeError
  651.  
  652. RangeError_swigregister = _xapian.RangeError_swigregister
  653. RangeError_swigregister(RangeError)
  654. version_string = _xapian.version_string
  655. major_version = _xapian.major_version
  656. minor_version = _xapian.minor_version
  657. revision = _xapian.revision
  658. xapian_version_string = _xapian.xapian_version_string
  659. xapian_major_version = _xapian.xapian_major_version
  660. xapian_minor_version = _xapian.xapian_minor_version
  661. xapian_revision = _xapian.xapian_revision
  662.  
  663. class PositionIterator(object):
  664.     '''
  665.     An iterator pointing to items in a list of positions. 
  666.     '''
  667.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  668.     __repr__ = _swig_repr
  669.     
  670.     def __init__(self, *args):
  671.         '''
  672.         Copying is allowed.
  673.  
  674.         Xapian::PositionIterator::PositionIterator(const PositionIterator &o)
  675.  
  676.         The internals are reference counted, so copying is also cheap. 
  677.         '''
  678.         _xapian.PositionIterator_swiginit(self, _xapian.new_PositionIterator(*args))
  679.  
  680.     __swig_destroy__ = _xapian.delete_PositionIterator
  681.     
  682.     def skip_to(*args):
  683.         '''
  684.         void
  685.         Xapian::PositionIterator::skip_to(Xapian::termpos pos) 
  686.         '''
  687.         return _xapian.PositionIterator_skip_to(*args)
  688.  
  689.     
  690.     def __str__(*args):
  691.         '''
  692.         Return a string describing this object.
  693.  
  694.         std::string Xapian::PositionIterator::get_description() const 
  695.         '''
  696.         return _xapian.PositionIterator___str__(*args)
  697.  
  698.     
  699.     def get_description(*args):
  700.         '''
  701.         Return a string describing this object.
  702.  
  703.         std::string Xapian::PositionIterator::get_description() const 
  704.         '''
  705.         return _xapian.PositionIterator_get_description(*args)
  706.  
  707.  
  708. PositionIterator.get_termpos = new_instancemethod(_xapian.PositionIterator_get_termpos, None, PositionIterator)
  709. PositionIterator.next = new_instancemethod(_xapian.PositionIterator_next, None, PositionIterator)
  710. PositionIterator.equals = new_instancemethod(_xapian.PositionIterator_equals, None, PositionIterator)
  711. PositionIterator.skip_to = new_instancemethod(_xapian.PositionIterator_skip_to, None, PositionIterator)
  712. PositionIterator.__str__ = new_instancemethod(_xapian.PositionIterator___str__, None, PositionIterator)
  713. PositionIterator.get_description = new_instancemethod(_xapian.PositionIterator_get_description, None, PositionIterator)
  714. PositionIterator.__eq__ = new_instancemethod(_xapian.PositionIterator___eq__, None, PositionIterator)
  715. PositionIterator.__ne__ = new_instancemethod(_xapian.PositionIterator___ne__, None, PositionIterator)
  716. PositionIterator_swigregister = _xapian.PositionIterator_swigregister
  717. PositionIterator_swigregister(PositionIterator)
  718. cvar = _xapian.cvar
  719. BAD_VALUENO = cvar.BAD_VALUENO
  720.  
  721. class PostingIterator(object):
  722.     '''
  723.     An iterator pointing to items in a list of postings. 
  724.     '''
  725.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  726.     __repr__ = _swig_repr
  727.     __swig_destroy__ = _xapian.delete_PostingIterator
  728.     
  729.     def __init__(self, *args):
  730.         '''
  731.         Copying is allowed.
  732.  
  733.         Xapian::PostingIterator::PostingIterator(const PostingIterator &other)
  734.  
  735.         The internals are reference counted, so copying is also cheap. 
  736.         '''
  737.         _xapian.PostingIterator_swiginit(self, _xapian.new_PostingIterator(*args))
  738.  
  739.     
  740.     def skip_to(*args):
  741.         """
  742.         Skip the iterator to document did, or the first document after did if
  743.         did isn't in the list of documents being iterated.
  744.  
  745.         void Xapian::PostingIterator::skip_to(Xapian::docid did) 
  746.         """
  747.         return _xapian.PostingIterator_skip_to(*args)
  748.  
  749.     
  750.     def get_doclength(*args):
  751.         '''
  752.         Get the length of the document at the current position in the
  753.         postlist.
  754.  
  755.         Xapian::doclength Xapian::PostingIterator::get_doclength() const
  756.  
  757.         This information may be stored in the postlist, in which case this
  758.         lookup should be extremely fast (indeed, not require further disk
  759.         access). If the information is not present in the postlist, it will be
  760.         retrieved from the database, at a greater performance cost. 
  761.         '''
  762.         return _xapian.PostingIterator_get_doclength(*args)
  763.  
  764.     
  765.     def get_wdf(*args):
  766.         '''
  767.         Get the within document frequency of the document at the current
  768.         position in the postlist.
  769.  
  770.         Xapian::termcount Xapian::PostingIterator::get_wdf() const 
  771.         '''
  772.         return _xapian.PostingIterator_get_wdf(*args)
  773.  
  774.     
  775.     def positionlist_begin(*args):
  776.         '''
  777.         Return PositionIterator pointing to start of positionlist for current
  778.         document.
  779.  
  780.         PositionIterator Xapian::PostingIterator::positionlist_begin() const
  781.  
  782.         '''
  783.         return _xapian.PostingIterator_positionlist_begin(*args)
  784.  
  785.     
  786.     def positionlist_end(*args):
  787.         '''
  788.         Return PositionIterator pointing to end of positionlist for current
  789.         document.
  790.  
  791.         PositionIterator Xapian::PostingIterator::positionlist_end() const 
  792.         '''
  793.         return _xapian.PostingIterator_positionlist_end(*args)
  794.  
  795.     
  796.     def __str__(*args):
  797.         '''
  798.         Return a string describing this object.
  799.  
  800.         std::string Xapian::PostingIterator::get_description() const 
  801.         '''
  802.         return _xapian.PostingIterator___str__(*args)
  803.  
  804.     
  805.     def get_description(*args):
  806.         '''
  807.         Return a string describing this object.
  808.  
  809.         std::string Xapian::PostingIterator::get_description() const 
  810.         '''
  811.         return _xapian.PostingIterator_get_description(*args)
  812.  
  813.  
  814. PostingIterator.skip_to = new_instancemethod(_xapian.PostingIterator_skip_to, None, PostingIterator)
  815. PostingIterator.get_doclength = new_instancemethod(_xapian.PostingIterator_get_doclength, None, PostingIterator)
  816. PostingIterator.get_wdf = new_instancemethod(_xapian.PostingIterator_get_wdf, None, PostingIterator)
  817. PostingIterator.positionlist_begin = new_instancemethod(_xapian.PostingIterator_positionlist_begin, None, PostingIterator)
  818. PostingIterator.positionlist_end = new_instancemethod(_xapian.PostingIterator_positionlist_end, None, PostingIterator)
  819. PostingIterator.__str__ = new_instancemethod(_xapian.PostingIterator___str__, None, PostingIterator)
  820. PostingIterator.get_description = new_instancemethod(_xapian.PostingIterator_get_description, None, PostingIterator)
  821. PostingIterator.__eq__ = new_instancemethod(_xapian.PostingIterator___eq__, None, PostingIterator)
  822. PostingIterator.__ne__ = new_instancemethod(_xapian.PostingIterator___ne__, None, PostingIterator)
  823. PostingIterator.get_docid = new_instancemethod(_xapian.PostingIterator_get_docid, None, PostingIterator)
  824. PostingIterator.next = new_instancemethod(_xapian.PostingIterator_next, None, PostingIterator)
  825. PostingIterator.equals = new_instancemethod(_xapian.PostingIterator_equals, None, PostingIterator)
  826. PostingIterator_swigregister = _xapian.PostingIterator_swigregister
  827. PostingIterator_swigregister(PostingIterator)
  828. __eq__ = _xapian.__eq__
  829. __ne__ = _xapian.__ne__
  830.  
  831. class TermIterator(object):
  832.     '''
  833.     An iterator pointing to items in a list of terms. 
  834.     '''
  835.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  836.     __repr__ = _swig_repr
  837.     
  838.     def __init__(self, *args):
  839.         '''
  840.         Copying is allowed.
  841.  
  842.         Xapian::TermIterator::TermIterator(const TermIterator &other)
  843.  
  844.         The internals are reference counted, so copying is also cheap. 
  845.         '''
  846.         _xapian.TermIterator_swiginit(self, _xapian.new_TermIterator(*args))
  847.  
  848.     __swig_destroy__ = _xapian.delete_TermIterator
  849.     
  850.     def skip_to(*args):
  851.         """
  852.         Skip the iterator to term tname, or the first term after tname if
  853.         tname isn't in the list of terms being iterated.
  854.  
  855.         void Xapian::TermIterator::skip_to(const std::string &tname) 
  856.         """
  857.         return _xapian.TermIterator_skip_to(*args)
  858.  
  859.     
  860.     def get_wdf(*args):
  861.         '''
  862.         Return the wdf of the current term (if meaningful).
  863.  
  864.         Xapian::termcount Xapian::TermIterator::get_wdf() const
  865.  
  866.         The wdf (within document frequency) is the number of occurences of a
  867.         term in a particular document. 
  868.         '''
  869.         return _xapian.TermIterator_get_wdf(*args)
  870.  
  871.     
  872.     def get_termfreq(*args):
  873.         '''
  874.         Return the term frequency of the current term (if meaningful).
  875.  
  876.         Xapian::doccount Xapian::TermIterator::get_termfreq() const
  877.  
  878.         The term frequency is the number of documents which a term indexes. 
  879.         '''
  880.         return _xapian.TermIterator_get_termfreq(*args)
  881.  
  882.     
  883.     def positionlist_begin(*args):
  884.         '''
  885.         Return PositionIterator pointing to start of positionlist for current
  886.         term.
  887.  
  888.         PositionIterator Xapian::TermIterator::positionlist_begin() const 
  889.         '''
  890.         return _xapian.TermIterator_positionlist_begin(*args)
  891.  
  892.     
  893.     def positionlist_end(*args):
  894.         '''
  895.         Return PositionIterator pointing to end of positionlist for current
  896.         term.
  897.  
  898.         PositionIterator Xapian::TermIterator::positionlist_end() const 
  899.         '''
  900.         return _xapian.TermIterator_positionlist_end(*args)
  901.  
  902.     
  903.     def __str__(*args):
  904.         '''
  905.         Return a string describing this object.
  906.  
  907.         std::string Xapian::TermIterator::get_description() const 
  908.         '''
  909.         return _xapian.TermIterator___str__(*args)
  910.  
  911.     
  912.     def get_description(*args):
  913.         '''
  914.         Return a string describing this object.
  915.  
  916.         std::string Xapian::TermIterator::get_description() const 
  917.         '''
  918.         return _xapian.TermIterator_get_description(*args)
  919.  
  920.  
  921. TermIterator.get_term = new_instancemethod(_xapian.TermIterator_get_term, None, TermIterator)
  922. TermIterator.next = new_instancemethod(_xapian.TermIterator_next, None, TermIterator)
  923. TermIterator.equals = new_instancemethod(_xapian.TermIterator_equals, None, TermIterator)
  924. TermIterator.skip_to = new_instancemethod(_xapian.TermIterator_skip_to, None, TermIterator)
  925. TermIterator.get_wdf = new_instancemethod(_xapian.TermIterator_get_wdf, None, TermIterator)
  926. TermIterator.get_termfreq = new_instancemethod(_xapian.TermIterator_get_termfreq, None, TermIterator)
  927. TermIterator.positionlist_begin = new_instancemethod(_xapian.TermIterator_positionlist_begin, None, TermIterator)
  928. TermIterator.positionlist_end = new_instancemethod(_xapian.TermIterator_positionlist_end, None, TermIterator)
  929. TermIterator.__str__ = new_instancemethod(_xapian.TermIterator___str__, None, TermIterator)
  930. TermIterator.get_description = new_instancemethod(_xapian.TermIterator_get_description, None, TermIterator)
  931. TermIterator.__eq__ = new_instancemethod(_xapian.TermIterator___eq__, None, TermIterator)
  932. TermIterator.__ne__ = new_instancemethod(_xapian.TermIterator___ne__, None, TermIterator)
  933. TermIterator_swigregister = _xapian.TermIterator_swigregister
  934. TermIterator_swigregister(TermIterator)
  935.  
  936. class ValueIterator(object):
  937.     '''
  938.     An iterator pointing to values associated with a document. 
  939.     '''
  940.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  941.     __repr__ = _swig_repr
  942.     
  943.     def __init__(self, *args):
  944.         '''
  945.         Copying is allowed (and is cheap).
  946.  
  947.         Xapian::ValueIterator::ValueIterator(const ValueIterator &other) 
  948.         '''
  949.         _xapian.ValueIterator_swiginit(self, _xapian.new_ValueIterator(*args))
  950.  
  951.     __swig_destroy__ = _xapian.delete_ValueIterator
  952.     
  953.     def get_valueno(*args):
  954.         '''
  955.         Get the number of the value at the current position.
  956.  
  957.         Xapian::valueno Xapian::ValueIterator::get_valueno() const 
  958.         '''
  959.         return _xapian.ValueIterator_get_valueno(*args)
  960.  
  961.     
  962.     def __str__(*args):
  963.         '''
  964.         Return a string describing this object.
  965.  
  966.         std::string Xapian::ValueIterator::get_description() const 
  967.         '''
  968.         return _xapian.ValueIterator___str__(*args)
  969.  
  970.     
  971.     def get_description(*args):
  972.         '''
  973.         Return a string describing this object.
  974.  
  975.         std::string Xapian::ValueIterator::get_description() const 
  976.         '''
  977.         return _xapian.ValueIterator_get_description(*args)
  978.  
  979.  
  980. ValueIterator.get_value = new_instancemethod(_xapian.ValueIterator_get_value, None, ValueIterator)
  981. ValueIterator.next = new_instancemethod(_xapian.ValueIterator_next, None, ValueIterator)
  982. ValueIterator.equals = new_instancemethod(_xapian.ValueIterator_equals, None, ValueIterator)
  983. ValueIterator.get_valueno = new_instancemethod(_xapian.ValueIterator_get_valueno, None, ValueIterator)
  984. ValueIterator.__str__ = new_instancemethod(_xapian.ValueIterator___str__, None, ValueIterator)
  985. ValueIterator.get_description = new_instancemethod(_xapian.ValueIterator_get_description, None, ValueIterator)
  986. ValueIterator.__eq__ = new_instancemethod(_xapian.ValueIterator___eq__, None, ValueIterator)
  987. ValueIterator.__ne__ = new_instancemethod(_xapian.ValueIterator___ne__, None, ValueIterator)
  988. ValueIterator_swigregister = _xapian.ValueIterator_swigregister
  989. ValueIterator_swigregister(ValueIterator)
  990.  
  991. class Document(object):
  992.     '''
  993.     A document in the database - holds data, values, terms, and postings.
  994.  
  995.     '''
  996.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  997.     __repr__ = _swig_repr
  998.     
  999.     def __init__(self, *args):
  1000.         '''
  1001.         Make a new empty Document.
  1002.  
  1003.         Xapian::Document::Document() 
  1004.         '''
  1005.         _xapian.Document_swiginit(self, _xapian.new_Document(*args))
  1006.  
  1007.     __swig_destroy__ = _xapian.delete_Document
  1008.     
  1009.     def get_value(*args):
  1010.         '''
  1011.         Get value by number.
  1012.  
  1013.         std::string Xapian::Document::get_value(Xapian::valueno valueno) const
  1014.  
  1015.         Returns an empty string if no value with the given number is present
  1016.         in the document.
  1017.  
  1018.         Parameters:
  1019.         -----------
  1020.  
  1021.         valueno:  The number of the value. 
  1022.         '''
  1023.         return _xapian.Document_get_value(*args)
  1024.  
  1025.     
  1026.     def add_value(*args):
  1027.         '''
  1028.         Add a new value.
  1029.  
  1030.         void Xapian::Document::add_value(Xapian::valueno valueno, const
  1031.         std::string &value)
  1032.  
  1033.         It will replace any existing value with the same number. 
  1034.         '''
  1035.         return _xapian.Document_add_value(*args)
  1036.  
  1037.     
  1038.     def remove_value(*args):
  1039.         '''
  1040.         Remove any value with the given number.
  1041.  
  1042.         void Xapian::Document::remove_value(Xapian::valueno valueno) 
  1043.         '''
  1044.         return _xapian.Document_remove_value(*args)
  1045.  
  1046.     
  1047.     def clear_values(*args):
  1048.         '''
  1049.         Remove all values associated with the document.
  1050.  
  1051.         void Xapian::Document::clear_values() 
  1052.         '''
  1053.         return _xapian.Document_clear_values(*args)
  1054.  
  1055.     
  1056.     def get_data(*args):
  1057.         """
  1058.         Get data stored in the document.
  1059.  
  1060.         std::string Xapian::Document::get_data() const
  1061.  
  1062.         This is a potentially expensive operation, and shouldn't normally be
  1063.         used in a match decider functor. Put data for use by match deciders in
  1064.         a value instead. 
  1065.         """
  1066.         return _xapian.Document_get_data(*args)
  1067.  
  1068.     
  1069.     def set_data(*args):
  1070.         '''
  1071.         Set data stored in the document.
  1072.  
  1073.         void Xapian::Document::set_data(const std::string &data) 
  1074.         '''
  1075.         return _xapian.Document_set_data(*args)
  1076.  
  1077.     
  1078.     def add_posting(*args):
  1079.         '''
  1080.         Add an occurrence of a term at a particular position.
  1081.  
  1082.         void Xapian::Document::add_posting(const std::string &tname,
  1083.         Xapian::termpos tpos, Xapian::termcount wdfinc=1)
  1084.  
  1085.         Multiple occurrences of the term at the same position are represented
  1086.         only once in the positional information, but do increase the wdf.
  1087.  
  1088.         If the term is not already in the document, it will be added to it.
  1089.  
  1090.         Parameters:
  1091.         -----------
  1092.  
  1093.         tname:  The name of the term.
  1094.  
  1095.         tpos:  The position of the term.
  1096.  
  1097.         wdfinc:  The increment that will be applied to the wdf for this term.
  1098.  
  1099.         '''
  1100.         return _xapian.Document_add_posting(*args)
  1101.  
  1102.     
  1103.     def add_term(*args):
  1104.         '''
  1105.         Add a term to the document, without positional information.
  1106.  
  1107.         void Xapian::Document::add_term(const std::string &tname,
  1108.         Xapian::termcount wdfinc=1)
  1109.  
  1110.         Any existing positional information for the term will be left
  1111.         unmodified.
  1112.  
  1113.         Parameters:
  1114.         -----------
  1115.  
  1116.         tname:  The name of the term.
  1117.  
  1118.         wdfinc:  The increment that will be applied to the wdf for this term.
  1119.  
  1120.         '''
  1121.         return _xapian.Document_add_term(*args)
  1122.  
  1123.     
  1124.     def remove_posting(*args):
  1125.         '''
  1126.         Remove a posting of a term from the document.
  1127.  
  1128.         void Xapian::Document::remove_posting(const std::string &tname,
  1129.         Xapian::termpos tpos, Xapian::termcount wdfdec=1)
  1130.  
  1131.         Note that the term will still index the document even if all
  1132.         occurrences are removed. To remove a term from a document completely,
  1133.         use remove_term().
  1134.  
  1135.         Parameters:
  1136.         -----------
  1137.  
  1138.         tname:  The name of the term.
  1139.  
  1140.         tpos:  The position of the term.
  1141.  
  1142.         wdfdec:  The decrement that will be applied to the wdf when removing
  1143.         this posting. The wdf will not go below the value of 0.
  1144.  
  1145.         Parameters:
  1146.         -----------
  1147.  
  1148.         Xapian::InvalidArgumentError:  will be thrown if the term is not at
  1149.         the position specified in the position list for this term in this
  1150.         document.
  1151.  
  1152.         Xapian::InvalidArgumentError:  will be thrown if the term is not in
  1153.         the document 
  1154.         '''
  1155.         return _xapian.Document_remove_posting(*args)
  1156.  
  1157.     
  1158.     def remove_term(*args):
  1159.         '''
  1160.         Remove a term and all postings associated with it.
  1161.  
  1162.         void Xapian::Document::remove_term(const std::string &tname)
  1163.  
  1164.         Parameters:
  1165.         -----------
  1166.  
  1167.         tname:  The name of the term.
  1168.  
  1169.         Parameters:
  1170.         -----------
  1171.  
  1172.         Xapian::InvalidArgumentError:  will be thrown if the term is not in
  1173.         the document 
  1174.         '''
  1175.         return _xapian.Document_remove_term(*args)
  1176.  
  1177.     
  1178.     def clear_terms(*args):
  1179.         '''
  1180.         Remove all terms (and postings) from the document.
  1181.  
  1182.         void Xapian::Document::clear_terms() 
  1183.         '''
  1184.         return _xapian.Document_clear_terms(*args)
  1185.  
  1186.     
  1187.     def termlist_count(*args):
  1188.         '''
  1189.         The length of the termlist - i.e.
  1190.  
  1191.         Xapian::termcount Xapian::Document::termlist_count() const
  1192.  
  1193.         the number of different terms which index this document. 
  1194.         '''
  1195.         return _xapian.Document_termlist_count(*args)
  1196.  
  1197.     
  1198.     def termlist_begin(*args):
  1199.         '''
  1200.         Iterator for the terms in this document.
  1201.  
  1202.         TermIterator Xapian::Document::termlist_begin() const 
  1203.         '''
  1204.         return _xapian.Document_termlist_begin(*args)
  1205.  
  1206.     
  1207.     def termlist_end(*args):
  1208.         '''
  1209.         Equivalent end iterator for termlist_begin().
  1210.  
  1211.         TermIterator Xapian::Document::termlist_end() const 
  1212.         '''
  1213.         return _xapian.Document_termlist_end(*args)
  1214.  
  1215.     
  1216.     def values_count(*args):
  1217.         '''
  1218.         Count the values in this document.
  1219.  
  1220.         Xapian::termcount Xapian::Document::values_count() const 
  1221.         '''
  1222.         return _xapian.Document_values_count(*args)
  1223.  
  1224.     
  1225.     def values_begin(*args):
  1226.         '''
  1227.         Iterator for the values in this document.
  1228.  
  1229.         ValueIterator Xapian::Document::values_begin() const 
  1230.         '''
  1231.         return _xapian.Document_values_begin(*args)
  1232.  
  1233.     
  1234.     def values_end(*args):
  1235.         '''
  1236.         Equivalent end iterator for values_begin().
  1237.  
  1238.         ValueIterator Xapian::Document::values_end() const 
  1239.         '''
  1240.         return _xapian.Document_values_end(*args)
  1241.  
  1242.     
  1243.     def get_docid(*args):
  1244.         '''
  1245.         Get the document id which is associated with this document (if any).
  1246.  
  1247.         docid Xapian::Document::get_docid() const
  1248.  
  1249.         NB If multiple databases are being searched together, then this will
  1250.         be the document id in the individual database, not the merged
  1251.         database!
  1252.  
  1253.         If this document came from a database, return the document id in that
  1254.         database. Otherwise, return 0. 
  1255.         '''
  1256.         return _xapian.Document_get_docid(*args)
  1257.  
  1258.     
  1259.     def __str__(*args):
  1260.         '''
  1261.         Return a string describing this object.
  1262.  
  1263.         std::string Xapian::Document::get_description() const 
  1264.         '''
  1265.         return _xapian.Document___str__(*args)
  1266.  
  1267.     
  1268.     def get_description(*args):
  1269.         '''
  1270.         Return a string describing this object.
  1271.  
  1272.         std::string Xapian::Document::get_description() const 
  1273.         '''
  1274.         return _xapian.Document_get_description(*args)
  1275.  
  1276.  
  1277. Document.get_value = new_instancemethod(_xapian.Document_get_value, None, Document)
  1278. Document.add_value = new_instancemethod(_xapian.Document_add_value, None, Document)
  1279. Document.remove_value = new_instancemethod(_xapian.Document_remove_value, None, Document)
  1280. Document.clear_values = new_instancemethod(_xapian.Document_clear_values, None, Document)
  1281. Document.get_data = new_instancemethod(_xapian.Document_get_data, None, Document)
  1282. Document.set_data = new_instancemethod(_xapian.Document_set_data, None, Document)
  1283. Document.add_posting = new_instancemethod(_xapian.Document_add_posting, None, Document)
  1284. Document.add_term = new_instancemethod(_xapian.Document_add_term, None, Document)
  1285. Document.remove_posting = new_instancemethod(_xapian.Document_remove_posting, None, Document)
  1286. Document.remove_term = new_instancemethod(_xapian.Document_remove_term, None, Document)
  1287. Document.clear_terms = new_instancemethod(_xapian.Document_clear_terms, None, Document)
  1288. Document.termlist_count = new_instancemethod(_xapian.Document_termlist_count, None, Document)
  1289. Document.termlist_begin = new_instancemethod(_xapian.Document_termlist_begin, None, Document)
  1290. Document.termlist_end = new_instancemethod(_xapian.Document_termlist_end, None, Document)
  1291. Document.values_count = new_instancemethod(_xapian.Document_values_count, None, Document)
  1292. Document.values_begin = new_instancemethod(_xapian.Document_values_begin, None, Document)
  1293. Document.values_end = new_instancemethod(_xapian.Document_values_end, None, Document)
  1294. Document.get_docid = new_instancemethod(_xapian.Document_get_docid, None, Document)
  1295. Document.__str__ = new_instancemethod(_xapian.Document___str__, None, Document)
  1296. Document.get_description = new_instancemethod(_xapian.Document_get_description, None, Document)
  1297. Document_swigregister = _xapian.Document_swigregister
  1298. Document_swigregister(Document)
  1299.  
  1300. class MSet(object):
  1301.     '''
  1302.     A match set ( MSet).
  1303.  
  1304.     This class represents (a portion of) the results of a query. 
  1305.     '''
  1306.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  1307.     __repr__ = _swig_repr
  1308.     
  1309.     def __init__(self, *args):
  1310.         '''
  1311.         Copying is allowed (and is cheap).
  1312.  
  1313.         Xapian::MSet::MSet(const MSet &other) 
  1314.         '''
  1315.         _xapian.MSet_swiginit(self, _xapian.new_MSet(*args))
  1316.  
  1317.     __swig_destroy__ = _xapian.delete_MSet
  1318.     
  1319.     def fetch(*args):
  1320.         '''
  1321.         Fetch all the items in the MSet.
  1322.  
  1323.         void Xapian::MSet::fetch() const 
  1324.         '''
  1325.         return _xapian.MSet_fetch(*args)
  1326.  
  1327.     
  1328.     def convert_to_percent(*args):
  1329.         '''
  1330.         Return the percentage score for a particular item.
  1331.  
  1332.         Xapian::percent Xapian::MSet::convert_to_percent(const MSetIterator
  1333.         &it) const 
  1334.         '''
  1335.         return _xapian.MSet_convert_to_percent(*args)
  1336.  
  1337.     
  1338.     def get_termfreq(*args):
  1339.         '''
  1340.         Return the term frequency of the given query term.
  1341.  
  1342.         Xapian::doccount Xapian::MSet::get_termfreq(const std::string &tname)
  1343.         const
  1344.  
  1345.         Parameters:
  1346.         -----------
  1347.  
  1348.         tname:  The term to look for.
  1349.  
  1350.         Parameters:
  1351.         -----------
  1352.  
  1353.         Xapian::InvalidArgumentError:  is thrown if the term was not in the
  1354.         query. 
  1355.         '''
  1356.         return _xapian.MSet_get_termfreq(*args)
  1357.  
  1358.     
  1359.     def get_termweight(*args):
  1360.         '''
  1361.         Return the term weight of the given query term.
  1362.  
  1363.         Xapian::weight Xapian::MSet::get_termweight(const std::string &tname)
  1364.         const
  1365.  
  1366.         Parameters:
  1367.         -----------
  1368.  
  1369.         tname:  The term to look for.
  1370.  
  1371.         Parameters:
  1372.         -----------
  1373.  
  1374.         Xapian::InvalidArgumentError:  is thrown if the term was not in the
  1375.         query. 
  1376.         '''
  1377.         return _xapian.MSet_get_termweight(*args)
  1378.  
  1379.     
  1380.     def get_firstitem(*args):
  1381.         '''
  1382.         The index of the first item in the result which was put into the MSet.
  1383.  
  1384.         Xapian::doccount Xapian::MSet::get_firstitem() const
  1385.  
  1386.         This corresponds to the parameter "first" specified in
  1387.         Xapian::Enquire::get_mset(). A value of 0 corresponds to the highest
  1388.         result being the first item in the MSet. 
  1389.         '''
  1390.         return _xapian.MSet_get_firstitem(*args)
  1391.  
  1392.     
  1393.     def get_matches_lower_bound(*args):
  1394.         '''
  1395.         A lower bound on the number of documents in the database which match
  1396.         the query.
  1397.  
  1398.         Xapian::doccount Xapian::MSet::get_matches_lower_bound() const
  1399.  
  1400.         This figure takes into account collapsing of duplicates, and weighting
  1401.         cutoff values.
  1402.  
  1403.         This number is usually considerably less than the actual number of
  1404.         documents which match the query. 
  1405.         '''
  1406.         return _xapian.MSet_get_matches_lower_bound(*args)
  1407.  
  1408.     
  1409.     def get_matches_estimated(*args):
  1410.         '''
  1411.         An estimate for the number of documents in the database which match
  1412.         the query.
  1413.  
  1414.         Xapian::doccount Xapian::MSet::get_matches_estimated() const
  1415.  
  1416.         This figure takes into account collapsing of duplicates, and weighting
  1417.         cutoff values.
  1418.  
  1419.         This value is returned because there is sometimes a request to display
  1420.         such information. However, our experience is that presenting this
  1421.         value to users causes them to worry about the large number of results,
  1422.         rather than how useful those at the top of the result set are, and is
  1423.         thus undesirable. 
  1424.         '''
  1425.         return _xapian.MSet_get_matches_estimated(*args)
  1426.  
  1427.     
  1428.     def get_matches_upper_bound(*args):
  1429.         '''
  1430.         An upper bound on the number of documents in the database which match
  1431.         the query.
  1432.  
  1433.         Xapian::doccount Xapian::MSet::get_matches_upper_bound() const
  1434.  
  1435.         This figure takes into account collapsing of duplicates, and weighting
  1436.         cutoff values.
  1437.  
  1438.         This number is usually considerably greater than the actual number of
  1439.         documents which match the query. 
  1440.         '''
  1441.         return _xapian.MSet_get_matches_upper_bound(*args)
  1442.  
  1443.     
  1444.     def get_max_possible(*args):
  1445.         '''
  1446.         The maximum possible weight in the MSet.
  1447.  
  1448.         Xapian::weight Xapian::MSet::get_max_possible() const
  1449.  
  1450.         This weight is likely not to be attained in the set of results, but
  1451.         represents an upper bound on the weight which a document could attain
  1452.         for the given query. 
  1453.         '''
  1454.         return _xapian.MSet_get_max_possible(*args)
  1455.  
  1456.     
  1457.     def get_max_attained(*args):
  1458.         '''
  1459.         The greatest weight which is attained by any document in the database.
  1460.  
  1461.         Xapian::weight Xapian::MSet::get_max_attained() const
  1462.  
  1463.         If firstitem == 0, this is the weight of the first entry in items.
  1464.  
  1465.         If no documents are found by the query, this will be 0.
  1466.  
  1467.         Note that calculation of max_attained requires calculation of at least
  1468.         one result item - therefore, if no items were requested when the query
  1469.         was performed (by specifying maxitems = 0 in
  1470.         Xapian::Enquire::get_mset()), this value will be 0. 
  1471.         '''
  1472.         return _xapian.MSet_get_max_attained(*args)
  1473.  
  1474.     
  1475.     def size(*args):
  1476.         '''
  1477.         The number of items in this MSet.
  1478.  
  1479.         Xapian::doccount Xapian::MSet::size() const 
  1480.         '''
  1481.         return _xapian.MSet_size(*args)
  1482.  
  1483.     
  1484.     def empty(*args):
  1485.         '''
  1486.         Test if this MSet is empty.
  1487.  
  1488.         bool Xapian::MSet::empty() const 
  1489.         '''
  1490.         return _xapian.MSet_empty(*args)
  1491.  
  1492.     
  1493.     def begin(*args):
  1494.         '''
  1495.         Iterator for the terms in this MSet.
  1496.  
  1497.         MSetIterator Xapian::MSet::begin() const 
  1498.         '''
  1499.         return _xapian.MSet_begin(*args)
  1500.  
  1501.     
  1502.     def end(*args):
  1503.         '''
  1504.         End iterator corresponding to begin().
  1505.  
  1506.         MSetIterator Xapian::MSet::end() const 
  1507.         '''
  1508.         return _xapian.MSet_end(*args)
  1509.  
  1510.     
  1511.     def back(*args):
  1512.         '''
  1513.         Iterator pointing to the last element of this MSet.
  1514.  
  1515.         MSetIterator Xapian::MSet::back() const 
  1516.         '''
  1517.         return _xapian.MSet_back(*args)
  1518.  
  1519.     
  1520.     def get_hit(*args):
  1521.         '''
  1522.         Get an item from the MSet.
  1523.  
  1524.         The supplied index is relative to the start of the MSet, not the absolute rank
  1525.         of the item. 
  1526.         '''
  1527.         return _xapian.MSet_get_hit(*args)
  1528.  
  1529.     
  1530.     def __str__(*args):
  1531.         '''
  1532.         Return a string describing this object.
  1533.  
  1534.         std::string Xapian::MSet::get_description() const 
  1535.         '''
  1536.         return _xapian.MSet___str__(*args)
  1537.  
  1538.     
  1539.     def get_description(*args):
  1540.         '''
  1541.         Return a string describing this object.
  1542.  
  1543.         std::string Xapian::MSet::get_description() const 
  1544.         '''
  1545.         return _xapian.MSet_get_description(*args)
  1546.  
  1547.     items = _swig_property(_xapian.MSet_items_get)
  1548.  
  1549. MSet.fetch = new_instancemethod(_xapian.MSet_fetch, None, MSet)
  1550. MSet.convert_to_percent = new_instancemethod(_xapian.MSet_convert_to_percent, None, MSet)
  1551. MSet.get_termfreq = new_instancemethod(_xapian.MSet_get_termfreq, None, MSet)
  1552. MSet.get_termweight = new_instancemethod(_xapian.MSet_get_termweight, None, MSet)
  1553. MSet.get_firstitem = new_instancemethod(_xapian.MSet_get_firstitem, None, MSet)
  1554. MSet.get_matches_lower_bound = new_instancemethod(_xapian.MSet_get_matches_lower_bound, None, MSet)
  1555. MSet.get_matches_estimated = new_instancemethod(_xapian.MSet_get_matches_estimated, None, MSet)
  1556. MSet.get_matches_upper_bound = new_instancemethod(_xapian.MSet_get_matches_upper_bound, None, MSet)
  1557. MSet.get_max_possible = new_instancemethod(_xapian.MSet_get_max_possible, None, MSet)
  1558. MSet.get_max_attained = new_instancemethod(_xapian.MSet_get_max_attained, None, MSet)
  1559. MSet.size = new_instancemethod(_xapian.MSet_size, None, MSet)
  1560. MSet.empty = new_instancemethod(_xapian.MSet_empty, None, MSet)
  1561. MSet.begin = new_instancemethod(_xapian.MSet_begin, None, MSet)
  1562. MSet.end = new_instancemethod(_xapian.MSet_end, None, MSet)
  1563. MSet.back = new_instancemethod(_xapian.MSet_back, None, MSet)
  1564. MSet.get_hit = new_instancemethod(_xapian.MSet_get_hit, None, MSet)
  1565. MSet.get_document_percentage = new_instancemethod(_xapian.MSet_get_document_percentage, None, MSet)
  1566. MSet.get_document = new_instancemethod(_xapian.MSet_get_document, None, MSet)
  1567. MSet.get_docid = new_instancemethod(_xapian.MSet_get_docid, None, MSet)
  1568. MSet.get_document_id = new_instancemethod(_xapian.MSet_get_document_id, None, MSet)
  1569. MSet.__str__ = new_instancemethod(_xapian.MSet___str__, None, MSet)
  1570. MSet.get_description = new_instancemethod(_xapian.MSet_get_description, None, MSet)
  1571. MSet.__cmp__ = new_instancemethod(_xapian.MSet___cmp__, None, MSet)
  1572. MSet_swigregister = _xapian.MSet_swigregister
  1573. MSet_swigregister(MSet)
  1574.  
  1575. class MSetIterator(object):
  1576.     '''
  1577.     An iterator pointing to items in an MSet.
  1578.  
  1579.     This is used for access to individual results of a match. 
  1580.     '''
  1581.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  1582.     __repr__ = _swig_repr
  1583.     
  1584.     def __init__(self, *args):
  1585.         '''
  1586.         Copying is allowed (and is cheap).
  1587.  
  1588.         Xapian::MSetIterator::MSetIterator(const MSetIterator &other) 
  1589.         '''
  1590.         _xapian.MSetIterator_swiginit(self, _xapian.new_MSetIterator(*args))
  1591.  
  1592.     __swig_destroy__ = _xapian.delete_MSetIterator
  1593.     
  1594.     def get_document(*args):
  1595.         '''
  1596.         Get a Xapian::Document object for the current position.
  1597.  
  1598.         Xapian::Document Xapian::MSetIterator::get_document() const
  1599.  
  1600.         This method returns a Xapian::Document object which provides the
  1601.         information about the document pointed to by the MSetIterator.
  1602.  
  1603.         If the underlying database has suitable support, using this call
  1604.         (rather than asking the database for a document based on its document
  1605.         ID) will enable the system to ensure that the correct data is
  1606.         returned, and that the document has not been deleted or changed since
  1607.         the query was performed.
  1608.  
  1609.         A Xapian::Document object containing the document data.
  1610.  
  1611.         Parameters:
  1612.         -----------
  1613.  
  1614.         Xapian::DocNotFoundError:  The document specified could not be found
  1615.         in the database. 
  1616.         '''
  1617.         return _xapian.MSetIterator_get_document(*args)
  1618.  
  1619.     
  1620.     def get_rank(*args):
  1621.         '''
  1622.         Get the rank of the document at the current position.
  1623.  
  1624.         Xapian::doccount Xapian::MSetIterator::get_rank() const
  1625.  
  1626.         The rank is the position that this document is at in the ordered list
  1627.         of results of the query. The result is 0-based - i.e. the top-ranked
  1628.         document has a rank of 0. 
  1629.         '''
  1630.         return _xapian.MSetIterator_get_rank(*args)
  1631.  
  1632.     
  1633.     def get_weight(*args):
  1634.         '''
  1635.         Get the weight of the document at the current position.
  1636.  
  1637.         Xapian::weight Xapian::MSetIterator::get_weight() const 
  1638.         '''
  1639.         return _xapian.MSetIterator_get_weight(*args)
  1640.  
  1641.     
  1642.     def get_collapse_key(*args):
  1643.         '''
  1644.         Get the collapse key for this document.
  1645.  
  1646.         std::string Xapian::MSetIterator::get_collapse_key() const 
  1647.         '''
  1648.         return _xapian.MSetIterator_get_collapse_key(*args)
  1649.  
  1650.     
  1651.     def get_collapse_count(*args):
  1652.         '''
  1653.         Get an estimate of the number of documents that have been collapsed
  1654.         into this one.
  1655.  
  1656.         Xapian::doccount Xapian::MSetIterator::get_collapse_count() const
  1657.  
  1658.         The estimate will always be less than or equal to the actual number of
  1659.         other documents satisfying the match criteria with the same collapse
  1660.         key as this document.
  1661.  
  1662.         This method may return 0 even though there are other documents with
  1663.         the same collapse key which satisfying the match criteria. However if
  1664.         this method returns non-zero, there definitely are other such
  1665.         documents. So this method may be used to inform the user that there
  1666.         are "at least N other matches in this group", or to control whether
  1667.         to offer a "show other documents in this group" feature (but note
  1668.         that it may not offer it in every case where it would show other
  1669.         documents). 
  1670.         '''
  1671.         return _xapian.MSetIterator_get_collapse_count(*args)
  1672.  
  1673.     
  1674.     def get_percent(*args):
  1675.         '''
  1676.         This returns the weight of the document as a percentage score.
  1677.  
  1678.         Xapian::percent Xapian::MSetIterator::get_percent() const
  1679.  
  1680.         The return value will be in the range 0 to 100: 0 meaning that the
  1681.         item did not match the query at all. 
  1682.         '''
  1683.         return _xapian.MSetIterator_get_percent(*args)
  1684.  
  1685.     
  1686.     def __str__(*args):
  1687.         '''
  1688.         Return a string describing this object.
  1689.  
  1690.         std::string Xapian::MSetIterator::get_description() const 
  1691.         '''
  1692.         return _xapian.MSetIterator___str__(*args)
  1693.  
  1694.     
  1695.     def get_description(*args):
  1696.         '''
  1697.         Return a string describing this object.
  1698.  
  1699.         std::string Xapian::MSetIterator::get_description() const 
  1700.         '''
  1701.         return _xapian.MSetIterator_get_description(*args)
  1702.  
  1703.  
  1704. MSetIterator.get_docid = new_instancemethod(_xapian.MSetIterator_get_docid, None, MSetIterator)
  1705. MSetIterator.next = new_instancemethod(_xapian.MSetIterator_next, None, MSetIterator)
  1706. MSetIterator.prev = new_instancemethod(_xapian.MSetIterator_prev, None, MSetIterator)
  1707. MSetIterator.equals = new_instancemethod(_xapian.MSetIterator_equals, None, MSetIterator)
  1708. MSetIterator.get_document = new_instancemethod(_xapian.MSetIterator_get_document, None, MSetIterator)
  1709. MSetIterator.get_rank = new_instancemethod(_xapian.MSetIterator_get_rank, None, MSetIterator)
  1710. MSetIterator.get_weight = new_instancemethod(_xapian.MSetIterator_get_weight, None, MSetIterator)
  1711. MSetIterator.get_collapse_key = new_instancemethod(_xapian.MSetIterator_get_collapse_key, None, MSetIterator)
  1712. MSetIterator.get_collapse_count = new_instancemethod(_xapian.MSetIterator_get_collapse_count, None, MSetIterator)
  1713. MSetIterator.get_percent = new_instancemethod(_xapian.MSetIterator_get_percent, None, MSetIterator)
  1714. MSetIterator.__str__ = new_instancemethod(_xapian.MSetIterator___str__, None, MSetIterator)
  1715. MSetIterator.get_description = new_instancemethod(_xapian.MSetIterator_get_description, None, MSetIterator)
  1716. MSetIterator.__eq__ = new_instancemethod(_xapian.MSetIterator___eq__, None, MSetIterator)
  1717. MSetIterator.__ne__ = new_instancemethod(_xapian.MSetIterator___ne__, None, MSetIterator)
  1718. MSetIterator_swigregister = _xapian.MSetIterator_swigregister
  1719. MSetIterator_swigregister(MSetIterator)
  1720.  
  1721. class ESet(object):
  1722.     '''
  1723.     Class representing an ordered set of expand terms (an ESet).
  1724.  
  1725.     This set represents the results of an expand operation, which is
  1726.     performed by Xapian::Enquire::get_eset(). 
  1727.     '''
  1728.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  1729.     __repr__ = _swig_repr
  1730.     
  1731.     def __init__(self, *args):
  1732.         '''
  1733.         Copying is allowed (and is cheap).
  1734.  
  1735.         Xapian::ESet::ESet(const ESet &other) 
  1736.         '''
  1737.         _xapian.ESet_swiginit(self, _xapian.new_ESet(*args))
  1738.  
  1739.     __swig_destroy__ = _xapian.delete_ESet
  1740.     
  1741.     def get_ebound(*args):
  1742.         '''
  1743.         A lower bound on the number of terms which are in the full set of
  1744.         results of the expand.
  1745.  
  1746.         Xapian::termcount Xapian::ESet::get_ebound() const
  1747.  
  1748.         This will be greater than or equal to size() 
  1749.         '''
  1750.         return _xapian.ESet_get_ebound(*args)
  1751.  
  1752.     
  1753.     def size(*args):
  1754.         '''
  1755.         The number of terms in this E-Set.
  1756.  
  1757.         Xapian::termcount Xapian::ESet::size() const 
  1758.         '''
  1759.         return _xapian.ESet_size(*args)
  1760.  
  1761.     
  1762.     def empty(*args):
  1763.         '''
  1764.         Test if this E-Set is empty.
  1765.  
  1766.         bool Xapian::ESet::empty() const 
  1767.         '''
  1768.         return _xapian.ESet_empty(*args)
  1769.  
  1770.     
  1771.     def begin(*args):
  1772.         '''
  1773.         Iterator for the terms in this E-Set.
  1774.  
  1775.         ESetIterator Xapian::ESet::begin() const 
  1776.         '''
  1777.         return _xapian.ESet_begin(*args)
  1778.  
  1779.     
  1780.     def end(*args):
  1781.         '''
  1782.         End iterator corresponding to begin().
  1783.  
  1784.         ESetIterator Xapian::ESet::end() const 
  1785.         '''
  1786.         return _xapian.ESet_end(*args)
  1787.  
  1788.     
  1789.     def back(*args):
  1790.         '''
  1791.         Iterator pointing to the last element of this E-Set.
  1792.  
  1793.         ESetIterator Xapian::ESet::back() const 
  1794.         '''
  1795.         return _xapian.ESet_back(*args)
  1796.  
  1797.     
  1798.     def __str__(*args):
  1799.         '''
  1800.         Return a string describing this object.
  1801.  
  1802.         std::string Xapian::ESet::get_description() const 
  1803.         '''
  1804.         return _xapian.ESet___str__(*args)
  1805.  
  1806.     
  1807.     def get_description(*args):
  1808.         '''
  1809.         Return a string describing this object.
  1810.  
  1811.         std::string Xapian::ESet::get_description() const 
  1812.         '''
  1813.         return _xapian.ESet_get_description(*args)
  1814.  
  1815.     items = _swig_property(_xapian.ESet_items_get)
  1816.  
  1817. ESet.get_ebound = new_instancemethod(_xapian.ESet_get_ebound, None, ESet)
  1818. ESet.size = new_instancemethod(_xapian.ESet_size, None, ESet)
  1819. ESet.empty = new_instancemethod(_xapian.ESet_empty, None, ESet)
  1820. ESet.begin = new_instancemethod(_xapian.ESet_begin, None, ESet)
  1821. ESet.end = new_instancemethod(_xapian.ESet_end, None, ESet)
  1822. ESet.back = new_instancemethod(_xapian.ESet_back, None, ESet)
  1823. ESet.__str__ = new_instancemethod(_xapian.ESet___str__, None, ESet)
  1824. ESet.get_description = new_instancemethod(_xapian.ESet_get_description, None, ESet)
  1825. ESet_swigregister = _xapian.ESet_swigregister
  1826. ESet_swigregister(ESet)
  1827.  
  1828. class ESetIterator(object):
  1829.     '''
  1830.     Iterate through terms in the ESet. 
  1831.     '''
  1832.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  1833.     __repr__ = _swig_repr
  1834.     
  1835.     def __init__(self, *args):
  1836.         '''
  1837.         Copying is allowed (and is cheap).
  1838.  
  1839.         Xapian::ESetIterator::ESetIterator(const ESetIterator &other) 
  1840.         '''
  1841.         _xapian.ESetIterator_swiginit(self, _xapian.new_ESetIterator(*args))
  1842.  
  1843.     __swig_destroy__ = _xapian.delete_ESetIterator
  1844.     
  1845.     def get_weight(*args):
  1846.         '''
  1847.         Get the weight of the term at the current position.
  1848.  
  1849.         Xapian::weight Xapian::ESetIterator::get_weight() const 
  1850.         '''
  1851.         return _xapian.ESetIterator_get_weight(*args)
  1852.  
  1853.     
  1854.     def __str__(*args):
  1855.         '''
  1856.         Return a string describing this object.
  1857.  
  1858.         std::string Xapian::ESetIterator::get_description() const 
  1859.         '''
  1860.         return _xapian.ESetIterator___str__(*args)
  1861.  
  1862.     
  1863.     def get_description(*args):
  1864.         '''
  1865.         Return a string describing this object.
  1866.  
  1867.         std::string Xapian::ESetIterator::get_description() const 
  1868.         '''
  1869.         return _xapian.ESetIterator_get_description(*args)
  1870.  
  1871.  
  1872. ESetIterator.get_termname = new_instancemethod(_xapian.ESetIterator_get_termname, None, ESetIterator)
  1873. ESetIterator.get_term = new_instancemethod(_xapian.ESetIterator_get_term, None, ESetIterator)
  1874. ESetIterator.next = new_instancemethod(_xapian.ESetIterator_next, None, ESetIterator)
  1875. ESetIterator.prev = new_instancemethod(_xapian.ESetIterator_prev, None, ESetIterator)
  1876. ESetIterator.equals = new_instancemethod(_xapian.ESetIterator_equals, None, ESetIterator)
  1877. ESetIterator.get_weight = new_instancemethod(_xapian.ESetIterator_get_weight, None, ESetIterator)
  1878. ESetIterator.__str__ = new_instancemethod(_xapian.ESetIterator___str__, None, ESetIterator)
  1879. ESetIterator.get_description = new_instancemethod(_xapian.ESetIterator_get_description, None, ESetIterator)
  1880. ESetIterator.__eq__ = new_instancemethod(_xapian.ESetIterator___eq__, None, ESetIterator)
  1881. ESetIterator.__ne__ = new_instancemethod(_xapian.ESetIterator___ne__, None, ESetIterator)
  1882. ESetIterator_swigregister = _xapian.ESetIterator_swigregister
  1883. ESetIterator_swigregister(ESetIterator)
  1884.  
  1885. class RSet(object):
  1886.     '''
  1887.     A relevance set (R-Set).
  1888.  
  1889.     This is the set of documents which are marked as relevant, for use in
  1890.     modifying the term weights, and in performing query expansion. 
  1891.     '''
  1892.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  1893.     __repr__ = _swig_repr
  1894.     
  1895.     def __init__(self, *args):
  1896.         '''
  1897.         Default constructor.
  1898.  
  1899.         Xapian::RSet::RSet() 
  1900.         '''
  1901.         _xapian.RSet_swiginit(self, _xapian.new_RSet(*args))
  1902.  
  1903.     __swig_destroy__ = _xapian.delete_RSet
  1904.     
  1905.     def size(*args):
  1906.         '''
  1907.         The number of documents in this R-Set.
  1908.  
  1909.         Xapian::doccount Xapian::RSet::size() const 
  1910.         '''
  1911.         return _xapian.RSet_size(*args)
  1912.  
  1913.     
  1914.     def empty(*args):
  1915.         '''
  1916.         Test if this R-Set is empty.
  1917.  
  1918.         bool Xapian::RSet::empty() const 
  1919.         '''
  1920.         return _xapian.RSet_empty(*args)
  1921.  
  1922.     
  1923.     def add_document(*args):
  1924.         '''
  1925.         Add a document to the relevance set.
  1926.  
  1927.         void Xapian::RSet::add_document(const Xapian::MSetIterator &i) 
  1928.         '''
  1929.         return _xapian.RSet_add_document(*args)
  1930.  
  1931.     
  1932.     def remove_document(*args):
  1933.         '''
  1934.         Remove a document from the relevance set.
  1935.  
  1936.         void Xapian::RSet::remove_document(const Xapian::MSetIterator &i) 
  1937.         '''
  1938.         return _xapian.RSet_remove_document(*args)
  1939.  
  1940.     
  1941.     def contains(*args):
  1942.         '''
  1943.         Test if a given document in the relevance set.
  1944.  
  1945.         bool Xapian::RSet::contains(const Xapian::MSetIterator &i) const 
  1946.         '''
  1947.         return _xapian.RSet_contains(*args)
  1948.  
  1949.     
  1950.     def __str__(*args):
  1951.         '''
  1952.         Return a string describing this object.
  1953.  
  1954.         std::string Xapian::RSet::get_description() const 
  1955.         '''
  1956.         return _xapian.RSet___str__(*args)
  1957.  
  1958.     
  1959.     def get_description(*args):
  1960.         '''
  1961.         Return a string describing this object.
  1962.  
  1963.         std::string Xapian::RSet::get_description() const 
  1964.         '''
  1965.         return _xapian.RSet_get_description(*args)
  1966.  
  1967.  
  1968. RSet.size = new_instancemethod(_xapian.RSet_size, None, RSet)
  1969. RSet.empty = new_instancemethod(_xapian.RSet_empty, None, RSet)
  1970. RSet.add_document = new_instancemethod(_xapian.RSet_add_document, None, RSet)
  1971. RSet.remove_document = new_instancemethod(_xapian.RSet_remove_document, None, RSet)
  1972. RSet.contains = new_instancemethod(_xapian.RSet_contains, None, RSet)
  1973. RSet.__str__ = new_instancemethod(_xapian.RSet___str__, None, RSet)
  1974. RSet.get_description = new_instancemethod(_xapian.RSet_get_description, None, RSet)
  1975. RSet_swigregister = _xapian.RSet_swigregister
  1976. RSet_swigregister(RSet)
  1977.  
  1978. class MatchDecider(object):
  1979.     '''
  1980.     Base class for matcher decision functor. 
  1981.     '''
  1982.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  1983.     __repr__ = _swig_repr
  1984.     __swig_destroy__ = _xapian.delete_MatchDecider
  1985.     
  1986.     def __init__(self, *args):
  1987.         if self.__class__ == MatchDecider:
  1988.             args = (None,) + args
  1989.         else:
  1990.             args = (self,) + args
  1991.         _xapian.MatchDecider_swiginit(self, _xapian.new_MatchDecider(*args))
  1992.  
  1993.     
  1994.     def __disown__(self):
  1995.         self.this.disown()
  1996.         _xapian.disown_MatchDecider(self)
  1997.         return weakref_proxy(self)
  1998.  
  1999.  
  2000. MatchDecider.__call__ = new_instancemethod(_xapian.MatchDecider___call__, None, MatchDecider)
  2001. MatchDecider_swigregister = _xapian.MatchDecider_swigregister
  2002. MatchDecider_swigregister(MatchDecider)
  2003.  
  2004. class ExpandDecider(object):
  2005.     '''
  2006.     Virtual base class for expand decider functor. 
  2007.     '''
  2008.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  2009.     __repr__ = _swig_repr
  2010.     __swig_destroy__ = _xapian.delete_ExpandDecider
  2011.     
  2012.     def __init__(self, *args):
  2013.         if self.__class__ == ExpandDecider:
  2014.             args = (None,) + args
  2015.         else:
  2016.             args = (self,) + args
  2017.         _xapian.ExpandDecider_swiginit(self, _xapian.new_ExpandDecider(*args))
  2018.  
  2019.     
  2020.     def __disown__(self):
  2021.         self.this.disown()
  2022.         _xapian.disown_ExpandDecider(self)
  2023.         return weakref_proxy(self)
  2024.  
  2025.  
  2026. ExpandDecider.__call__ = new_instancemethod(_xapian.ExpandDecider___call__, None, ExpandDecider)
  2027. ExpandDecider_swigregister = _xapian.ExpandDecider_swigregister
  2028. ExpandDecider_swigregister(ExpandDecider)
  2029.  
  2030. class Enquire(object):
  2031.     '''
  2032.     This class provides an interface to the information retrieval system
  2033.     for the purpose of searching.
  2034.  
  2035.     Databases are usually opened lazily, so exceptions may not be thrown
  2036.     where you would expect them to be. You should catch Xapian::Error
  2037.     exceptions when calling any method in Xapian::Enquire.
  2038.  
  2039.     Parameters:
  2040.     -----------
  2041.  
  2042.     Xapian::InvalidArgumentError:  will be thrown if an invalid argument
  2043.     is supplied, for example, an unknown database type. 
  2044.     '''
  2045.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  2046.     __repr__ = _swig_repr
  2047.     
  2048.     def __init__(self, *args):
  2049.         '''
  2050.         Create a Xapian::Enquire object.
  2051.  
  2052.         Xapian::Enquire::Enquire(const Database &database, ErrorHandler
  2053.         *errorhandler_=0)
  2054.  
  2055.         This specification cannot be changed once the Xapian::Enquire is
  2056.         opened: you must create a new Xapian::Enquire object to access a
  2057.         different database, or set of databases.
  2058.  
  2059.         The database supplied must have been initialised (ie, must not be the
  2060.         result of calling the Database::Database() constructor). If you need
  2061.         to handle a situation where you have no index gracefully, a database
  2062.         created with InMemory::open() can be passed here, which represents a
  2063.         completely empty database.
  2064.  
  2065.         Parameters:
  2066.         -----------
  2067.  
  2068.         database:  Specification of the database or databases to use.
  2069.  
  2070.         errorhandler_:  A pointer to the error handler to use. Ownership of
  2071.         the object pointed to is not assumed by the Xapian::Enquire object -
  2072.         the user should delete the Xapian::ErrorHandler object after the
  2073.         Xapian::Enquire object is deleted. To use no error handler, this
  2074.         parameter should be 0.
  2075.  
  2076.         Parameters:
  2077.         -----------
  2078.  
  2079.         Xapian::InvalidArgumentError:  will be thrown if an initialised
  2080.         Database object is supplied. 
  2081.         '''
  2082.         _xapian.Enquire_swiginit(self, _xapian.new_Enquire(*args))
  2083.  
  2084.     __swig_destroy__ = _xapian.delete_Enquire
  2085.     
  2086.     def set_query(*args):
  2087.         '''
  2088.         Set the query to run.
  2089.  
  2090.         void Xapian::Enquire::set_query(const Xapian::Query &query,
  2091.         Xapian::termcount qlen=0)
  2092.  
  2093.         Parameters:
  2094.         -----------
  2095.  
  2096.         query:  the new query to run.
  2097.  
  2098.         qlen:  the query length to use in weight calculations - by default the
  2099.         sum of the wqf of all terms is used. 
  2100.         '''
  2101.         return _xapian.Enquire_set_query(*args)
  2102.  
  2103.     
  2104.     def get_query(*args):
  2105.         '''
  2106.         Get the query which has been set.
  2107.  
  2108.         const Xapian::Query& Xapian::Enquire::get_query() const
  2109.  
  2110.         This is only valid after set_query() has been called.
  2111.  
  2112.         Parameters:
  2113.         -----------
  2114.  
  2115.         Xapian::InvalidArgumentError:  will be thrown if query has not yet
  2116.         been set. 
  2117.         '''
  2118.         return _xapian.Enquire_get_query(*args)
  2119.  
  2120.     
  2121.     def set_weighting_scheme(*args):
  2122.         '''
  2123.         Set the weighting scheme to use for queries.
  2124.  
  2125.         void Xapian::Enquire::set_weighting_scheme(const Weight &weight_)
  2126.  
  2127.         Parameters:
  2128.         -----------
  2129.  
  2130.         weight_:  the new weighting scheme. If no weighting scheme is
  2131.         specified, the default is BM25 with the default parameters. 
  2132.         '''
  2133.         return _xapian.Enquire_set_weighting_scheme(*args)
  2134.  
  2135.     
  2136.     def set_collapse_key(*args):
  2137.         """
  2138.         Set the collapse key to use for queries.
  2139.  
  2140.         void Xapian::Enquire::set_collapse_key(Xapian::valueno collapse_key)
  2141.  
  2142.         Parameters:
  2143.         -----------
  2144.  
  2145.         collapse_key:  value number to collapse on - at most one MSet entry
  2146.         with each particular value will be returned.
  2147.  
  2148.         The entry returned will be the best entry with that particular value
  2149.         (highest weight or highest sorting key).
  2150.  
  2151.         An example use might be to create a value for each document containing
  2152.         an MD5 hash of the document contents. Then duplicate documents from
  2153.         different sources can be eliminated at search time (it's better to
  2154.         eliminate duplicates at index time, but this may not be always be
  2155.         possible - for example the search may be over more than one Xapian
  2156.         database).
  2157.  
  2158.         Another use is to group matches in a particular category (e.g. you
  2159.         might collapse a mailing list search on the Subject: so that there's
  2160.         only one result per discussion thread). In this case you can use
  2161.         get_collapse_count() to give the user some idea how many other results
  2162.         there are. And if you index the Subject: as a boolean term as well as
  2163.         putting it in a value, you can offer a link to a non-collapsed search
  2164.         restricted to that thread using a boolean filter.
  2165.  
  2166.         (default is Xapian::BAD_VALUENO which means no collapsing). 
  2167.         """
  2168.         return _xapian.Enquire_set_collapse_key(*args)
  2169.  
  2170.     ASCENDING = _xapian.Enquire_ASCENDING
  2171.     DESCENDING = _xapian.Enquire_DESCENDING
  2172.     DONT_CARE = _xapian.Enquire_DONT_CARE
  2173.     
  2174.     def set_docid_order(*args):
  2175.         '''
  2176.         Set the direction in which documents are ordered by document id in the
  2177.         returned MSet.
  2178.  
  2179.         void Xapian::Enquire::set_docid_order(docid_order order)
  2180.  
  2181.         This order only has an effect on documents which would otherwise have
  2182.         equal rank. For a weighted probabilistic match with no sort value,
  2183.         this means documents with equal weight. For a boolean match, with no
  2184.         sort value, this means all documents. And if a sort value is used,
  2185.         this means documents with equal sort value (and also equal weight if
  2186.         ordering on relevance after the sort).
  2187.  
  2188.         Parameters:
  2189.         -----------
  2190.  
  2191.         order:  This can be: Xapian::Enquire::ASCENDING docids sort in
  2192.         ascending order (default)
  2193.  
  2194.         Xapian::Enquire::DESCENDING docids sort in descending order
  2195.  
  2196.         Xapian::Enquire::DONT_CARE docids sort in whatever order is most
  2197.         efficient for the backend
  2198.  
  2199.         Note: If you add documents in strict date order, then a boolean search
  2200.         - i.e. set_weighting_scheme(Xapian::BoolWeight()) - with
  2201.         set_docid_order(Xapian::Enquire::DESCENDING) is a very efficient way
  2202.         to perform "sort by date, newest first". 
  2203.         '''
  2204.         return _xapian.Enquire_set_docid_order(*args)
  2205.  
  2206.     
  2207.     def set_cutoff(*args):
  2208.         """
  2209.         Set the percentage and/or weight cutoffs.
  2210.  
  2211.         void Xapian::Enquire::set_cutoff(Xapian::percent percent_cutoff,
  2212.         Xapian::weight weight_cutoff=0)
  2213.  
  2214.         Parameters:
  2215.         -----------
  2216.  
  2217.         percent_cutoff:  Minimum percentage score for returned documents. If a
  2218.         document has a lower percentage score than this, it will not appear in
  2219.         the MSet. If your intention is to return only matches which contain
  2220.         all the terms in the query, then it's more efficient to use
  2221.         Xapian::Query::OP_AND instead of Xapian::Query::OP_OR in the query
  2222.         than to use set_cutoff(100). (default 0 => no percentage cut-off).
  2223.  
  2224.         weight_cutoff:  Minimum weight for a document to be returned. If a
  2225.         document has a lower score that this, it will not appear in the MSet.
  2226.         It is usually only possible to choose an appropriate weight for cutoff
  2227.         based on the results of a previous run of the same query; this is thus
  2228.         mainly useful for alerting operations. The other potential use is with
  2229.         a user specified weighting scheme. (default 0 => no weight cut-off).
  2230.  
  2231.         """
  2232.         return _xapian.Enquire_set_cutoff(*args)
  2233.  
  2234.     
  2235.     def set_sort_by_relevance(*args):
  2236.         '''
  2237.         Set the sorting to be by relevance only.
  2238.  
  2239.         void Xapian::Enquire::set_sort_by_relevance()
  2240.  
  2241.         This is the default. 
  2242.         '''
  2243.         return _xapian.Enquire_set_sort_by_relevance(*args)
  2244.  
  2245.     
  2246.     def set_sort_by_value(*args):
  2247.         """
  2248.         Set the sorting to be by value only.
  2249.  
  2250.         void Xapian::Enquire::set_sort_by_value(Xapian::valueno sort_key, bool
  2251.         ascending=true)
  2252.  
  2253.         NB sorting of values uses a string comparison, so you'll need to store
  2254.         numbers padded with leading zeros or spaces, or with the number of
  2255.         digits prepended.
  2256.  
  2257.         Parameters:
  2258.         -----------
  2259.  
  2260.         sort_key:  value number to sort on.
  2261.  
  2262.         ascending:  If true, documents values which sort higher by string
  2263.         compare are better. If false, the sort order is reversed. (default
  2264.         true) 
  2265.         """
  2266.         return _xapian.Enquire_set_sort_by_value(*args)
  2267.  
  2268.     
  2269.     def set_sort_by_value_then_relevance(*args):
  2270.         """
  2271.         Set the sorting to be by value, then by relevance for documents with
  2272.         the same value.
  2273.  
  2274.         void Xapian::Enquire::set_sort_by_value_then_relevance(Xapian::valueno
  2275.         sort_key, bool ascending=true)
  2276.  
  2277.         NB sorting of values uses a string comparison, so you'll need to store
  2278.         numbers padded with leading zeros or spaces, or with the number of
  2279.         digits prepended.
  2280.  
  2281.         Parameters:
  2282.         -----------
  2283.  
  2284.         sort_key:  value number to sort on.
  2285.  
  2286.         ascending:  If true, documents values which sort higher by string
  2287.         compare are better. If false, the sort order is reversed. (default
  2288.         true) 
  2289.         """
  2290.         return _xapian.Enquire_set_sort_by_value_then_relevance(*args)
  2291.  
  2292.     
  2293.     def set_sort_by_relevance_then_value(*args):
  2294.         """
  2295.         Set the sorting to be by relevance then value.
  2296.  
  2297.         void Xapian::Enquire::set_sort_by_relevance_then_value(Xapian::valueno
  2298.         sort_key, bool ascending=true)
  2299.  
  2300.         NB sorting of values uses a string comparison, so you'll need to store
  2301.         numbers padded with leading zeros or spaces, or with the number of
  2302.         digits prepended.
  2303.  
  2304.         Note that with the default BM25 weighting scheme parameters, non-
  2305.         identical documents will rarely have the same weight, so this setting
  2306.         will give very similar results to set_sort_by_relevance(). It becomes
  2307.         more useful with particular BM25 parameter settings (e.g.
  2308.         BM25Weight(1,0,1,0,0)) or custom weighting schemes.
  2309.  
  2310.         Parameters:
  2311.         -----------
  2312.  
  2313.         sort_key:  value number to sort on.
  2314.  
  2315.         ascending:  If true, documents values which sort higher by string
  2316.         compare are better. If false, the sort order is reversed. (default
  2317.         true) 
  2318.         """
  2319.         return _xapian.Enquire_set_sort_by_relevance_then_value(*args)
  2320.  
  2321.     
  2322.     def set_sort_by_key(*args):
  2323.         '''
  2324.         Set the sorting to be by key generated from values only.
  2325.  
  2326.         void Xapian::Enquire::set_sort_by_key(Xapian::Sorter *sorter, bool
  2327.         ascending=true)
  2328.  
  2329.         Parameters:
  2330.         -----------
  2331.  
  2332.         sorter:  The functor to use for generating keys.
  2333.  
  2334.         ascending:  If true, documents values which sort higher by string
  2335.         compare are better. If false, the sort order is reversed. (default
  2336.         true) 
  2337.         '''
  2338.         return _xapian.Enquire_set_sort_by_key(*args)
  2339.  
  2340.     
  2341.     def set_sort_by_key_then_relevance(*args):
  2342.         '''
  2343.         Set the sorting to be by keys generated from values, then by relevance
  2344.         for documents with identical keys.
  2345.  
  2346.         void Xapian::Enquire::set_sort_by_key_then_relevance(Xapian::Sorter
  2347.         *sorter, bool ascending=true)
  2348.  
  2349.         Parameters:
  2350.         -----------
  2351.  
  2352.         sorter:  The functor to use for generating keys.
  2353.  
  2354.         ascending:  If true, keys which sort higher by string compare are
  2355.         better. If false, the sort order is reversed. (default true) 
  2356.         '''
  2357.         return _xapian.Enquire_set_sort_by_key_then_relevance(*args)
  2358.  
  2359.     
  2360.     def set_sort_by_relevance_then_key(*args):
  2361.         '''
  2362.         Set the sorting to be by relevance, then by keys generated from
  2363.         values.
  2364.  
  2365.         void Xapian::Enquire::set_sort_by_relevance_then_key(Xapian::Sorter
  2366.         *sorter, bool ascending=true)
  2367.  
  2368.         Note that with the default BM25 weighting scheme parameters, non-
  2369.         identical documents will rarely have the same weight, so this setting
  2370.         will give very similar results to set_sort_by_relevance(). It becomes
  2371.         more useful with particular BM25 parameter settings (e.g.
  2372.         BM25Weight(1,0,1,0,0)) or custom weighting schemes.
  2373.  
  2374.         Parameters:
  2375.         -----------
  2376.  
  2377.         sorter:  The functor to use for generating keys.
  2378.  
  2379.         ascending:  If true, keys which sort higher by string compare are
  2380.         better. If false, the sort order is reversed. (default true) 
  2381.         '''
  2382.         return _xapian.Enquire_set_sort_by_relevance_then_key(*args)
  2383.  
  2384.     INCLUDE_QUERY_TERMS = _xapian.Enquire_INCLUDE_QUERY_TERMS
  2385.     USE_EXACT_TERMFREQ = _xapian.Enquire_USE_EXACT_TERMFREQ
  2386.     
  2387.     def get_mset(*args):
  2388.         '''
  2389.         MSet
  2390.         Xapian::Enquire::get_mset(Xapian::doccount first, Xapian::doccount
  2391.         maxitems, const RSet *omrset, const MatchDecider *mdecider=0) const 
  2392.         '''
  2393.         return _xapian.Enquire_get_mset(*args)
  2394.  
  2395.     
  2396.     def get_eset(*args):
  2397.         '''
  2398.         Get the expand set for the given rset.
  2399.  
  2400.         ESet Xapian::Enquire::get_eset(Xapian::termcount maxitems, const RSet
  2401.         &omrset, const Xapian::ExpandDecider *edecider) const
  2402.  
  2403.         Parameters:
  2404.         -----------
  2405.  
  2406.         maxitems:  the maximum number of items to return.
  2407.  
  2408.         omrset:  the relevance set to use when performing the expand
  2409.         operation.
  2410.  
  2411.         edecider:  a decision functor to use to decide whether a given term
  2412.         should be put in the ESet
  2413.  
  2414.         An ESet object containing the results of the expand.
  2415.  
  2416.         Parameters:
  2417.         -----------
  2418.  
  2419.         Xapian::InvalidArgumentError:  See class documentation. 
  2420.         '''
  2421.         return _xapian.Enquire_get_eset(*args)
  2422.  
  2423.     
  2424.     def get_matching_terms_begin(*args):
  2425.         '''
  2426.         Get terms which match a given document, by match set item.
  2427.  
  2428.         TermIterator Xapian::Enquire::get_matching_terms_begin(const
  2429.         MSetIterator &it) const
  2430.  
  2431.         This method returns the terms in the current query which match the
  2432.         given document.
  2433.  
  2434.         If the underlying database has suitable support, using this call
  2435.         (rather than passing a Xapian::docid) will enable the system to ensure
  2436.         that the correct data is returned, and that the document has not been
  2437.         deleted or changed since the query was performed.
  2438.  
  2439.         Parameters:
  2440.         -----------
  2441.  
  2442.         it:  The iterator for which to retrieve the matching terms.
  2443.  
  2444.         An iterator returning the terms which match the document. The terms
  2445.         will be returned (as far as this makes any sense) in the same order as
  2446.         the terms in the query. Terms will not occur more than once, even if
  2447.         they do in the query.
  2448.  
  2449.         Parameters:
  2450.         -----------
  2451.  
  2452.         Xapian::InvalidArgumentError:  See class documentation.
  2453.  
  2454.         Xapian::DocNotFoundError:  The document specified could not be found
  2455.         in the database. 
  2456.         '''
  2457.         return _xapian.Enquire_get_matching_terms_begin(*args)
  2458.  
  2459.     
  2460.     def get_matching_terms_end(*args):
  2461.         '''
  2462.         End iterator corresponding to get_matching_terms_begin().
  2463.  
  2464.         TermIterator Xapian::Enquire::get_matching_terms_end(const
  2465.         MSetIterator &) const 
  2466.         '''
  2467.         return _xapian.Enquire_get_matching_terms_end(*args)
  2468.  
  2469.     
  2470.     def __str__(*args):
  2471.         '''
  2472.         Return a string describing this object.
  2473.  
  2474.         std::string Xapian::Enquire::get_description() const 
  2475.         '''
  2476.         return _xapian.Enquire___str__(*args)
  2477.  
  2478.     
  2479.     def get_description(*args):
  2480.         '''
  2481.         Return a string describing this object.
  2482.  
  2483.         std::string Xapian::Enquire::get_description() const 
  2484.         '''
  2485.         return _xapian.Enquire_get_description(*args)
  2486.  
  2487.  
  2488. Enquire.set_query = new_instancemethod(_xapian.Enquire_set_query, None, Enquire)
  2489. Enquire.get_query = new_instancemethod(_xapian.Enquire_get_query, None, Enquire)
  2490. Enquire.set_weighting_scheme = new_instancemethod(_xapian.Enquire_set_weighting_scheme, None, Enquire)
  2491. Enquire.set_collapse_key = new_instancemethod(_xapian.Enquire_set_collapse_key, None, Enquire)
  2492. Enquire.set_docid_order = new_instancemethod(_xapian.Enquire_set_docid_order, None, Enquire)
  2493. Enquire.set_cutoff = new_instancemethod(_xapian.Enquire_set_cutoff, None, Enquire)
  2494. Enquire.set_sort_by_relevance = new_instancemethod(_xapian.Enquire_set_sort_by_relevance, None, Enquire)
  2495. Enquire.set_sort_by_value = new_instancemethod(_xapian.Enquire_set_sort_by_value, None, Enquire)
  2496. Enquire.set_sort_by_value_then_relevance = new_instancemethod(_xapian.Enquire_set_sort_by_value_then_relevance, None, Enquire)
  2497. Enquire.set_sort_by_relevance_then_value = new_instancemethod(_xapian.Enquire_set_sort_by_relevance_then_value, None, Enquire)
  2498. Enquire.set_sort_by_key = new_instancemethod(_xapian.Enquire_set_sort_by_key, None, Enquire)
  2499. Enquire.set_sort_by_key_then_relevance = new_instancemethod(_xapian.Enquire_set_sort_by_key_then_relevance, None, Enquire)
  2500. Enquire.set_sort_by_relevance_then_key = new_instancemethod(_xapian.Enquire_set_sort_by_relevance_then_key, None, Enquire)
  2501. Enquire.get_mset = new_instancemethod(_xapian.Enquire_get_mset, None, Enquire)
  2502. Enquire.get_eset = new_instancemethod(_xapian.Enquire_get_eset, None, Enquire)
  2503. Enquire.get_matching_terms_begin = new_instancemethod(_xapian.Enquire_get_matching_terms_begin, None, Enquire)
  2504. Enquire.get_matching_terms_end = new_instancemethod(_xapian.Enquire_get_matching_terms_end, None, Enquire)
  2505. Enquire.register_match_decider = new_instancemethod(_xapian.Enquire_register_match_decider, None, Enquire)
  2506. Enquire.get_matching_terms = new_instancemethod(_xapian.Enquire_get_matching_terms, None, Enquire)
  2507. Enquire.__str__ = new_instancemethod(_xapian.Enquire___str__, None, Enquire)
  2508. Enquire.get_description = new_instancemethod(_xapian.Enquire_get_description, None, Enquire)
  2509. Enquire_swigregister = _xapian.Enquire_swigregister
  2510. Enquire_swigregister(Enquire)
  2511.  
  2512. class Weight(object):
  2513.     '''
  2514.     Abstract base class for weighting schemes. 
  2515.     '''
  2516.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  2517.     
  2518.     def __init__(self):
  2519.         raise AttributeError, 'No constructor defined'
  2520.  
  2521.     __repr__ = _swig_repr
  2522.     __swig_destroy__ = _xapian.delete_Weight
  2523.     
  2524.     def name(*args):
  2525.         '''
  2526.         Name of the weighting scheme.
  2527.  
  2528.         virtual std::string Xapian::Weight::name() const=0
  2529.  
  2530.         If the subclass is called FooWeight, this should return "Foo". 
  2531.         '''
  2532.         return _xapian.Weight_name(*args)
  2533.  
  2534.     
  2535.     def serialise(*args):
  2536.         '''
  2537.         Serialise object parameters into a string.
  2538.  
  2539.         virtual std::string Xapian::Weight::serialise() const=0 
  2540.         '''
  2541.         return _xapian.Weight_serialise(*args)
  2542.  
  2543.     
  2544.     def unserialise(*args):
  2545.         '''
  2546.         Create object given string serialisation returned by serialise().
  2547.  
  2548.         virtual Weight* Xapian::Weight::unserialise(const std::string &s)
  2549.         const=0 
  2550.         '''
  2551.         return _xapian.Weight_unserialise(*args)
  2552.  
  2553.     
  2554.     def get_sumpart(*args):
  2555.         '''
  2556.         Get a weight which is part of the sum over terms being performed.
  2557.  
  2558.         virtual Xapian::weight Xapian::Weight::get_sumpart(Xapian::termcount
  2559.         wdf, Xapian::doclength len) const=0
  2560.  
  2561.         This returns a weight for a given term and document. These weights are
  2562.         summed to give a total weight for the document.
  2563.  
  2564.         Parameters:
  2565.         -----------
  2566.  
  2567.         wdf:  the within document frequency of the term.
  2568.  
  2569.         len:  the (unnormalised) document length. 
  2570.         '''
  2571.         return _xapian.Weight_get_sumpart(*args)
  2572.  
  2573.     
  2574.     def get_maxpart(*args):
  2575.         '''
  2576.         Gets the maximum value that get_sumpart() may return.
  2577.  
  2578.         virtual Xapian::weight Xapian::Weight::get_maxpart() const=0
  2579.  
  2580.         This is used in optimising searches, by having the postlist tree decay
  2581.         appropriately when parts of it can have limited, or no, further
  2582.         effect. 
  2583.         '''
  2584.         return _xapian.Weight_get_maxpart(*args)
  2585.  
  2586.     
  2587.     def get_sumextra(*args):
  2588.         '''
  2589.         Get an extra weight for a document to add to the sum calculated over
  2590.         the query terms.
  2591.  
  2592.         virtual Xapian::weight Xapian::Weight::get_sumextra(Xapian::doclength
  2593.         len) const=0
  2594.  
  2595.         This returns a weight for a given document, and is used by some
  2596.         weighting schemes to account for influence such as document length.
  2597.  
  2598.         Parameters:
  2599.         -----------
  2600.  
  2601.         len:  the (unnormalised) document length. 
  2602.         '''
  2603.         return _xapian.Weight_get_sumextra(*args)
  2604.  
  2605.     
  2606.     def get_maxextra(*args):
  2607.         '''
  2608.         Gets the maximum value that get_sumextra() may return.
  2609.  
  2610.         virtual Xapian::weight Xapian::Weight::get_maxextra() const=0
  2611.  
  2612.         This is used in optimising searches. 
  2613.         '''
  2614.         return _xapian.Weight_get_maxextra(*args)
  2615.  
  2616.     
  2617.     def get_sumpart_needs_doclength(*args):
  2618.         """
  2619.         return false if the weight object doesn't need doclength
  2620.  
  2621.         virtual bool Xapian::Weight::get_sumpart_needs_doclength() const 
  2622.         """
  2623.         return _xapian.Weight_get_sumpart_needs_doclength(*args)
  2624.  
  2625.  
  2626. Weight.name = new_instancemethod(_xapian.Weight_name, None, Weight)
  2627. Weight.serialise = new_instancemethod(_xapian.Weight_serialise, None, Weight)
  2628. Weight.unserialise = new_instancemethod(_xapian.Weight_unserialise, None, Weight)
  2629. Weight.get_sumpart = new_instancemethod(_xapian.Weight_get_sumpart, None, Weight)
  2630. Weight.get_maxpart = new_instancemethod(_xapian.Weight_get_maxpart, None, Weight)
  2631. Weight.get_sumextra = new_instancemethod(_xapian.Weight_get_sumextra, None, Weight)
  2632. Weight.get_maxextra = new_instancemethod(_xapian.Weight_get_maxextra, None, Weight)
  2633. Weight.get_sumpart_needs_doclength = new_instancemethod(_xapian.Weight_get_sumpart_needs_doclength, None, Weight)
  2634. Weight_swigregister = _xapian.Weight_swigregister
  2635. Weight_swigregister(Weight)
  2636.  
  2637. class BoolWeight(Weight):
  2638.     '''
  2639.     Boolean weighting scheme (everything gets 0). 
  2640.     '''
  2641.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  2642.     __repr__ = _swig_repr
  2643.     
  2644.     def clone(*args):
  2645.         '''
  2646.         Return a new weight object of this type.
  2647.  
  2648.         BoolWeight* Xapian::BoolWeight::clone() const
  2649.  
  2650.         A subclass called FooWeight taking parameters param1 and param2 should
  2651.         implement this as:
  2652.  
  2653.         virtual FooWeight * clone() const { return new FooWeight(param1,
  2654.         param2); } 
  2655.         '''
  2656.         return _xapian.BoolWeight_clone(*args)
  2657.  
  2658.     
  2659.     def __init__(self, *args):
  2660.         '''Xapian::BoolWeight::BoolWeight() '''
  2661.         _xapian.BoolWeight_swiginit(self, _xapian.new_BoolWeight(*args))
  2662.  
  2663.     __swig_destroy__ = _xapian.delete_BoolWeight
  2664.     
  2665.     def unserialise(*args):
  2666.         '''
  2667.         Create object given string serialisation returned by serialise().
  2668.  
  2669.         BoolWeight* Xapian::BoolWeight::unserialise(const std::string &s)
  2670.         const 
  2671.         '''
  2672.         return _xapian.BoolWeight_unserialise(*args)
  2673.  
  2674.  
  2675. BoolWeight.clone = new_instancemethod(_xapian.BoolWeight_clone, None, BoolWeight)
  2676. BoolWeight.unserialise = new_instancemethod(_xapian.BoolWeight_unserialise, None, BoolWeight)
  2677. BoolWeight_swigregister = _xapian.BoolWeight_swigregister
  2678. BoolWeight_swigregister(BoolWeight)
  2679.  
  2680. class BM25Weight(Weight):
  2681.     '''
  2682.     BM25 weighting scheme.
  2683.  
  2684.     BM25 weighting options : The BM25 formula is \\[
  2685.     \\frac{k_{2}.n_{q}}{1+L_{d}}+\\sum_{t}\\frac{(k_{3}+1)q_{t
  2686.     }}{k_{3}+q_{t}}.\\frac{(k_{1}+1)f_{t,d}}{k_{1}((1-b)+bL_{d})+f_{t,d}
  2687.     }.w_{t} \\] where  $w_{t}$ is the termweight of term t
  2688.  
  2689.     $f_{t,d}$ is the within document frequency of term t in document d
  2690.  
  2691.     $q_{t}$ is the within query frequency of term t
  2692.  
  2693.     $L_{d}$ is the normalised length of document d
  2694.  
  2695.     $n_{q}$ is the size of the query
  2696.  
  2697.     $k_{1}$, $k_{2}$, $k_{3}$ and $b$ are user specified parameters 
  2698.     '''
  2699.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  2700.     __repr__ = _swig_repr
  2701.     
  2702.     def __init__(self, *args):
  2703.         '''Xapian::BM25Weight::BM25Weight() '''
  2704.         _xapian.BM25Weight_swiginit(self, _xapian.new_BM25Weight(*args))
  2705.  
  2706.     
  2707.     def clone(*args):
  2708.         '''
  2709.         Return a new weight object of this type.
  2710.  
  2711.         BM25Weight* Xapian::BM25Weight::clone() const
  2712.  
  2713.         A subclass called FooWeight taking parameters param1 and param2 should
  2714.         implement this as:
  2715.  
  2716.         virtual FooWeight * clone() const { return new FooWeight(param1,
  2717.         param2); } 
  2718.         '''
  2719.         return _xapian.BM25Weight_clone(*args)
  2720.  
  2721.     __swig_destroy__ = _xapian.delete_BM25Weight
  2722.     
  2723.     def unserialise(*args):
  2724.         '''
  2725.         Create object given string serialisation returned by serialise().
  2726.  
  2727.         BM25Weight* Xapian::BM25Weight::unserialise(const std::string &s)
  2728.         const 
  2729.         '''
  2730.         return _xapian.BM25Weight_unserialise(*args)
  2731.  
  2732.  
  2733. BM25Weight.clone = new_instancemethod(_xapian.BM25Weight_clone, None, BM25Weight)
  2734. BM25Weight.unserialise = new_instancemethod(_xapian.BM25Weight_unserialise, None, BM25Weight)
  2735. BM25Weight_swigregister = _xapian.BM25Weight_swigregister
  2736. BM25Weight_swigregister(BM25Weight)
  2737.  
  2738. class TradWeight(Weight):
  2739.     '''
  2740.     Traditional probabilistic weighting scheme.
  2741.  
  2742.     This class implements the Traditional Probabilistic Weighting scheme,
  2743.     as described by the early papers on Probabilistic Retrieval. BM25
  2744.     generally gives better results.
  2745.  
  2746.     The Traditional weighting scheme formula is \\[
  2747.     \\sum_{t}\\frac{f_{t,d}}{k.L_{d}+f_{t,d}}.w_{t} \\] where
  2748.     $w_{t}$ is the termweight of term t
  2749.  
  2750.     $f_{t,d}$ is the within document frequency of term t in document d
  2751.  
  2752.     $L_{d}$ is the normalised length of document d
  2753.  
  2754.     $k$ is a user specifiable parameter
  2755.  
  2756.     TradWeight(k) is equivalent to BM25Weight(k, 0, 0, 1, 0), except that
  2757.     the latter returns weights (k+1) times larger. 
  2758.     '''
  2759.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  2760.     __repr__ = _swig_repr
  2761.     
  2762.     def __init__(self, *args):
  2763.         '''Xapian::TradWeight::TradWeight() '''
  2764.         _xapian.TradWeight_swiginit(self, _xapian.new_TradWeight(*args))
  2765.  
  2766.     
  2767.     def clone(*args):
  2768.         '''
  2769.         Return a new weight object of this type.
  2770.  
  2771.         TradWeight* Xapian::TradWeight::clone() const
  2772.  
  2773.         A subclass called FooWeight taking parameters param1 and param2 should
  2774.         implement this as:
  2775.  
  2776.         virtual FooWeight * clone() const { return new FooWeight(param1,
  2777.         param2); } 
  2778.         '''
  2779.         return _xapian.TradWeight_clone(*args)
  2780.  
  2781.     __swig_destroy__ = _xapian.delete_TradWeight
  2782.     
  2783.     def unserialise(*args):
  2784.         '''
  2785.         Create object given string serialisation returned by serialise().
  2786.  
  2787.         TradWeight* Xapian::TradWeight::unserialise(const std::string &s)
  2788.         const 
  2789.         '''
  2790.         return _xapian.TradWeight_unserialise(*args)
  2791.  
  2792.  
  2793. TradWeight.clone = new_instancemethod(_xapian.TradWeight_clone, None, TradWeight)
  2794. TradWeight.unserialise = new_instancemethod(_xapian.TradWeight_unserialise, None, TradWeight)
  2795. TradWeight_swigregister = _xapian.TradWeight_swigregister
  2796. TradWeight_swigregister(TradWeight)
  2797.  
  2798. class Database(object):
  2799.     '''
  2800.     This class is used to access a database, or a group of databases.
  2801.  
  2802.     For searching, this class is used in conjunction with an Enquire
  2803.     object.
  2804.  
  2805.     Parameters:
  2806.     -----------
  2807.  
  2808.     InvalidArgumentError:  will be thrown if an invalid argument is
  2809.     supplied, for example, an unknown database type.
  2810.  
  2811.     DatabaseOpeningError:  may be thrown if the database cannot be opened
  2812.     (for example, a required file cannot be found).
  2813.  
  2814.     DatabaseVersionError:  may be thrown if the database is in an
  2815.     unsupported format (for example, created by a newer version of Xapian
  2816.     which uses an incompatible format). 
  2817.     '''
  2818.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  2819.     __repr__ = _swig_repr
  2820.     
  2821.     def add_database(*args):
  2822.         '''
  2823.         Add an existing database (or group of databases) to those accessed by
  2824.         this object.
  2825.  
  2826.         void Xapian::Database::add_database(const Database &database)
  2827.  
  2828.         Parameters:
  2829.         -----------
  2830.  
  2831.         database:  the database(s) to add. 
  2832.         '''
  2833.         return _xapian.Database_add_database(*args)
  2834.  
  2835.     __swig_destroy__ = _xapian.delete_Database
  2836.     
  2837.     def __init__(self, *args):
  2838.         '''
  2839.         Copying is allowed.
  2840.  
  2841.         Xapian::Database::Database(const Database &other)
  2842.  
  2843.         The internals are reference counted, so copying is cheap. 
  2844.         '''
  2845.         _xapian.Database_swiginit(self, _xapian.new_Database(*args))
  2846.  
  2847.     
  2848.     def reopen(*args):
  2849.         '''
  2850.         Re-open the database.
  2851.  
  2852.         void Xapian::Database::reopen()
  2853.  
  2854.         This re-opens the database(s) to the latest available version(s). It
  2855.         can be used either to make sure the latest results are returned, or to
  2856.         recover from a Xapian::DatabaseModifiedError. 
  2857.         '''
  2858.         return _xapian.Database_reopen(*args)
  2859.  
  2860.     
  2861.     def __str__(*args):
  2862.         '''
  2863.         Return a string describing this object.
  2864.  
  2865.         virtual std::string Xapian::Database::get_description() const 
  2866.         '''
  2867.         return _xapian.Database___str__(*args)
  2868.  
  2869.     
  2870.     def postlist_begin(*args):
  2871.         '''
  2872.         An iterator pointing to the start of the postlist for a given term.
  2873.  
  2874.         PostingIterator Xapian::Database::postlist_begin(const std::string
  2875.         &tname) const
  2876.  
  2877.         If the term name is the empty string, the iterator returned will list
  2878.         all the documents in the database. Such an iterator will always return
  2879.         a WDF value of 1, since there is no obvious meaning for this quantity
  2880.         in this case. 
  2881.         '''
  2882.         return _xapian.Database_postlist_begin(*args)
  2883.  
  2884.     
  2885.     def postlist_end(*args):
  2886.         '''
  2887.         Corresponding end iterator to postlist_begin().
  2888.  
  2889.         PostingIterator Xapian::Database::postlist_end(const std::string &)
  2890.         const 
  2891.         '''
  2892.         return _xapian.Database_postlist_end(*args)
  2893.  
  2894.     
  2895.     def termlist_begin(*args):
  2896.         '''
  2897.         An iterator pointing to the start of the termlist for a given
  2898.         document.
  2899.  
  2900.         TermIterator Xapian::Database::termlist_begin(Xapian::docid did) const
  2901.  
  2902.         '''
  2903.         return _xapian.Database_termlist_begin(*args)
  2904.  
  2905.     
  2906.     def termlist_end(*args):
  2907.         '''
  2908.         Corresponding end iterator to termlist_begin().
  2909.  
  2910.         TermIterator Xapian::Database::termlist_end(Xapian::docid) const 
  2911.         '''
  2912.         return _xapian.Database_termlist_end(*args)
  2913.  
  2914.     
  2915.     def positionlist_begin(*args):
  2916.         '''
  2917.         An iterator pointing to the start of the position list for a given
  2918.         term in a given document.
  2919.  
  2920.         PositionIterator Xapian::Database::positionlist_begin(Xapian::docid
  2921.         did, const std::string &tname) const 
  2922.         '''
  2923.         return _xapian.Database_positionlist_begin(*args)
  2924.  
  2925.     
  2926.     def positionlist_end(*args):
  2927.         '''
  2928.         Corresponding end iterator to positionlist_begin().
  2929.  
  2930.         PositionIterator Xapian::Database::positionlist_end(Xapian::docid,
  2931.         const std::string &) const 
  2932.         '''
  2933.         return _xapian.Database_positionlist_end(*args)
  2934.  
  2935.     
  2936.     def allterms_begin(*args):
  2937.         '''
  2938.         An iterator which runs across all terms with a given prefix.
  2939.  
  2940.         TermIterator Xapian::Database::allterms_begin(const std::string
  2941.         &prefix) const
  2942.  
  2943.         This is functionally similar to getting an iterator with
  2944.         allterms_begin() and then calling skip_to(prefix) on that iterator to
  2945.         move to the start of the prefix, but is more convenient (because it
  2946.         detects the end of the prefixed terms), and may be more efficient than
  2947.         simply calling skip_to() after opening the iterator, particularly for
  2948.         network databases.
  2949.  
  2950.         Parameters:
  2951.         -----------
  2952.  
  2953.         prefix:  The prefix to restrict the returned terms to. 
  2954.         '''
  2955.         return _xapian.Database_allterms_begin(*args)
  2956.  
  2957.     
  2958.     def allterms_end(*args):
  2959.         '''
  2960.         Corresponding end iterator to allterms_begin(prefix).
  2961.  
  2962.         TermIterator Xapian::Database::allterms_end(const std::string &) const
  2963.  
  2964.         '''
  2965.         return _xapian.Database_allterms_end(*args)
  2966.  
  2967.     
  2968.     def get_doccount(*args):
  2969.         '''
  2970.         Get the number of documents in the database.
  2971.  
  2972.         Xapian::doccount Xapian::Database::get_doccount() const 
  2973.         '''
  2974.         return _xapian.Database_get_doccount(*args)
  2975.  
  2976.     
  2977.     def get_lastdocid(*args):
  2978.         '''
  2979.         Get the highest document id which has been used in the database.
  2980.  
  2981.         Xapian::docid Xapian::Database::get_lastdocid() const 
  2982.         '''
  2983.         return _xapian.Database_get_lastdocid(*args)
  2984.  
  2985.     
  2986.     def get_avlength(*args):
  2987.         '''
  2988.         Get the average length of the documents in the database.
  2989.  
  2990.         Xapian::doclength Xapian::Database::get_avlength() const 
  2991.         '''
  2992.         return _xapian.Database_get_avlength(*args)
  2993.  
  2994.     
  2995.     def get_termfreq(*args):
  2996.         '''
  2997.         Get the number of documents in the database indexed by a given term.
  2998.  
  2999.         Xapian::doccount Xapian::Database::get_termfreq(const std::string
  3000.         &tname) const 
  3001.         '''
  3002.         return _xapian.Database_get_termfreq(*args)
  3003.  
  3004.     
  3005.     def term_exists(*args):
  3006.         '''
  3007.         Check if a given term exists in the database.
  3008.  
  3009.         bool Xapian::Database::term_exists(const std::string &tname) const
  3010.  
  3011.         Return true if and only if the term exists in the database. This is
  3012.         the same as (get_termfreq(tname) != 0), but will often be more
  3013.         efficient. 
  3014.         '''
  3015.         return _xapian.Database_term_exists(*args)
  3016.  
  3017.     
  3018.     def get_collection_freq(*args):
  3019.         '''
  3020.         Return the total number of occurrences of the given term.
  3021.  
  3022.         Xapian::termcount Xapian::Database::get_collection_freq(const
  3023.         std::string &tname) const
  3024.  
  3025.         This is the sum of the number of occurrences of the term in each
  3026.         document it indexes: i.e., the sum of the within document frequencies
  3027.         of the term.
  3028.  
  3029.         Parameters:
  3030.         -----------
  3031.  
  3032.         tname:  The term whose collection frequency is being requested. 
  3033.         '''
  3034.         return _xapian.Database_get_collection_freq(*args)
  3035.  
  3036.     
  3037.     def get_doclength(*args):
  3038.         '''
  3039.         Get the length of a document.
  3040.  
  3041.         Xapian::doclength Xapian::Database::get_doclength(Xapian::docid did)
  3042.         const 
  3043.         '''
  3044.         return _xapian.Database_get_doclength(*args)
  3045.  
  3046.     
  3047.     def keep_alive(*args):
  3048.         '''
  3049.         Send a "keep-alive" to remote databases to stop them timing out.
  3050.  
  3051.         void Xapian::Database::keep_alive() 
  3052.         '''
  3053.         return _xapian.Database_keep_alive(*args)
  3054.  
  3055.     
  3056.     def get_document(*args):
  3057.         '''
  3058.         Get a document from the database, given its document id.
  3059.  
  3060.         Xapian::Document Xapian::Database::get_document(Xapian::docid did)
  3061.         const
  3062.  
  3063.         This method returns a Xapian::Document object which provides the
  3064.         information about a document.
  3065.  
  3066.         Parameters:
  3067.         -----------
  3068.  
  3069.         did:  The document id for which to retrieve the data.
  3070.  
  3071.         A Xapian::Document object containing the document data
  3072.  
  3073.         Parameters:
  3074.         -----------
  3075.  
  3076.         Xapian::DocNotFoundError:  The document specified could not be found
  3077.         in the database. 
  3078.         '''
  3079.         return _xapian.Database_get_document(*args)
  3080.  
  3081.     
  3082.     def get_spelling_suggestion(*args):
  3083.         '''
  3084.         Suggest a spelling correction.
  3085.  
  3086.         std::string Xapian::Database::get_spelling_suggestion(const
  3087.         std::string &word, unsigned max_edit_distance=2) const
  3088.  
  3089.         Parameters:
  3090.         -----------
  3091.  
  3092.         word:  The potentially misspelled word.
  3093.  
  3094.         max_edit_distance:  Only consider words which are at most
  3095.         max_edit_distance edits from word. An edit is a character insertion,
  3096.         deletion, or the transposition of two adjacent characters (default is
  3097.         2). 
  3098.         '''
  3099.         return _xapian.Database_get_spelling_suggestion(*args)
  3100.  
  3101.     
  3102.     def spellings_begin(*args):
  3103.         '''
  3104.         An iterator which returns all the spelling correction targets.
  3105.  
  3106.         Xapian::TermIterator Xapian::Database::spellings_begin() const
  3107.  
  3108.         This returns all the words which are considered as targets for the
  3109.         spelling correction algorithm. The frequency of each word is available
  3110.         as the term frequency of each entry in the returned iterator. 
  3111.         '''
  3112.         return _xapian.Database_spellings_begin(*args)
  3113.  
  3114.     
  3115.     def spellings_end(*args):
  3116.         '''
  3117.         Corresponding end iterator to spellings_begin().
  3118.  
  3119.         Xapian::TermIterator Xapian::Database::spellings_end() const 
  3120.         '''
  3121.         return _xapian.Database_spellings_end(*args)
  3122.  
  3123.     
  3124.     def synonyms_begin(*args):
  3125.         '''
  3126.         An iterator which returns all the synonyms for a given term.
  3127.  
  3128.         Xapian::TermIterator Xapian::Database::synonyms_begin(const
  3129.         std::string &term) const
  3130.  
  3131.         Parameters:
  3132.         -----------
  3133.  
  3134.         term:  The term to return synonyms for. 
  3135.         '''
  3136.         return _xapian.Database_synonyms_begin(*args)
  3137.  
  3138.     
  3139.     def synonyms_end(*args):
  3140.         '''
  3141.         Corresponding end iterator to synonyms_begin(term).
  3142.  
  3143.         Xapian::TermIterator Xapian::Database::synonyms_end(const std::string
  3144.         &) const 
  3145.         '''
  3146.         return _xapian.Database_synonyms_end(*args)
  3147.  
  3148.     
  3149.     def synonym_keys_begin(*args):
  3150.         '''
  3151.         An iterator which returns all terms which have synonyms.
  3152.  
  3153.         Xapian::TermIterator Xapian::Database::synonym_keys_begin(const
  3154.         std::string &prefix="") const
  3155.  
  3156.         Parameters:
  3157.         -----------
  3158.  
  3159.         prefix:  If non-empty, only terms with this prefix are returned. 
  3160.         '''
  3161.         return _xapian.Database_synonym_keys_begin(*args)
  3162.  
  3163.     
  3164.     def synonym_keys_end(*args):
  3165.         '''
  3166.         Corresponding end iterator to synonym_keys_begin(prefix).
  3167.  
  3168.         Xapian::TermIterator Xapian::Database::synonym_keys_end(const
  3169.         std::string &="") const 
  3170.         '''
  3171.         return _xapian.Database_synonym_keys_end(*args)
  3172.  
  3173.     
  3174.     def get_metadata(*args):
  3175.         """
  3176.         Get the user-specified metadata associated with a given key.
  3177.  
  3178.         std::string Xapian::Database::get_metadata(const std::string &key)
  3179.         const
  3180.  
  3181.         User-specified metadata allows you to store arbitrary information in
  3182.         the form of (key,tag) pairs. See  WritableDatabase::set_metadata() for
  3183.         more information.
  3184.  
  3185.         When invoked on a Xapian::Database object representing multiple
  3186.         databases, currently only the metadata for the first is considered but
  3187.         this behaviour may change in the future.
  3188.  
  3189.         If there is no piece of metadata associated with the specified key, an
  3190.         empty string is returned (this applies even for backends which don't
  3191.         support metadata).
  3192.  
  3193.         Empty keys are not valid, and specifying one will cause an exception.
  3194.  
  3195.         Parameters:
  3196.         -----------
  3197.  
  3198.         key:  The key of the metadata item to access.
  3199.  
  3200.         The retrieved metadata item's value.
  3201.  
  3202.         Parameters:
  3203.         -----------
  3204.  
  3205.         Xapian::InvalidArgumentError:  will be thrown if the key supplied is
  3206.         empty.
  3207.  
  3208.         Xapian::UnimplementedError:  will be thrown if the database backend in
  3209.         use doesn't support user- specified metadata. 
  3210.         """
  3211.         return _xapian.Database_get_metadata(*args)
  3212.  
  3213.     
  3214.     def get_description(*args):
  3215.         '''
  3216.         Return a string describing this object.
  3217.  
  3218.         virtual std::string Xapian::Database::get_description() const 
  3219.         '''
  3220.         return _xapian.Database_get_description(*args)
  3221.  
  3222.  
  3223. Database.add_database = new_instancemethod(_xapian.Database_add_database, None, Database)
  3224. Database.reopen = new_instancemethod(_xapian.Database_reopen, None, Database)
  3225. Database.__str__ = new_instancemethod(_xapian.Database___str__, None, Database)
  3226. Database.postlist_begin = new_instancemethod(_xapian.Database_postlist_begin, None, Database)
  3227. Database.postlist_end = new_instancemethod(_xapian.Database_postlist_end, None, Database)
  3228. Database.termlist_begin = new_instancemethod(_xapian.Database_termlist_begin, None, Database)
  3229. Database.termlist_end = new_instancemethod(_xapian.Database_termlist_end, None, Database)
  3230. Database.positionlist_begin = new_instancemethod(_xapian.Database_positionlist_begin, None, Database)
  3231. Database.positionlist_end = new_instancemethod(_xapian.Database_positionlist_end, None, Database)
  3232. Database.allterms_begin = new_instancemethod(_xapian.Database_allterms_begin, None, Database)
  3233. Database.allterms_end = new_instancemethod(_xapian.Database_allterms_end, None, Database)
  3234. Database.get_doccount = new_instancemethod(_xapian.Database_get_doccount, None, Database)
  3235. Database.get_lastdocid = new_instancemethod(_xapian.Database_get_lastdocid, None, Database)
  3236. Database.get_avlength = new_instancemethod(_xapian.Database_get_avlength, None, Database)
  3237. Database.get_termfreq = new_instancemethod(_xapian.Database_get_termfreq, None, Database)
  3238. Database.term_exists = new_instancemethod(_xapian.Database_term_exists, None, Database)
  3239. Database.get_collection_freq = new_instancemethod(_xapian.Database_get_collection_freq, None, Database)
  3240. Database.get_doclength = new_instancemethod(_xapian.Database_get_doclength, None, Database)
  3241. Database.keep_alive = new_instancemethod(_xapian.Database_keep_alive, None, Database)
  3242. Database.get_document = new_instancemethod(_xapian.Database_get_document, None, Database)
  3243. Database.get_spelling_suggestion = new_instancemethod(_xapian.Database_get_spelling_suggestion, None, Database)
  3244. Database.spellings_begin = new_instancemethod(_xapian.Database_spellings_begin, None, Database)
  3245. Database.spellings_end = new_instancemethod(_xapian.Database_spellings_end, None, Database)
  3246. Database.synonyms_begin = new_instancemethod(_xapian.Database_synonyms_begin, None, Database)
  3247. Database.synonyms_end = new_instancemethod(_xapian.Database_synonyms_end, None, Database)
  3248. Database.synonym_keys_begin = new_instancemethod(_xapian.Database_synonym_keys_begin, None, Database)
  3249. Database.synonym_keys_end = new_instancemethod(_xapian.Database_synonym_keys_end, None, Database)
  3250. Database.get_metadata = new_instancemethod(_xapian.Database_get_metadata, None, Database)
  3251. Database.get_description = new_instancemethod(_xapian.Database_get_description, None, Database)
  3252. Database_swigregister = _xapian.Database_swigregister
  3253. Database_swigregister(Database)
  3254.  
  3255. class WritableDatabase(Database):
  3256.     '''
  3257.     This class provides read/write access to a database. 
  3258.     '''
  3259.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  3260.     __repr__ = _swig_repr
  3261.     __swig_destroy__ = _xapian.delete_WritableDatabase
  3262.     
  3263.     def __init__(self, *args):
  3264.         '''
  3265.         Copying is allowed.
  3266.  
  3267.         Xapian::WritableDatabase::WritableDatabase(const WritableDatabase
  3268.         &other)
  3269.  
  3270.         The internals are reference counted, so copying is cheap. 
  3271.         '''
  3272.         _xapian.WritableDatabase_swiginit(self, _xapian.new_WritableDatabase(*args))
  3273.  
  3274.     
  3275.     def flush(*args):
  3276.         """
  3277.         Flush to disk any modifications made to the database.
  3278.  
  3279.         void Xapian::WritableDatabase::flush()
  3280.  
  3281.         For efficiency reasons, when performing multiple updates to a database
  3282.         it is best (indeed, almost essential) to make as many modifications as
  3283.         memory will permit in a single pass through the database. To ensure
  3284.         this, Xapian batches up modifications.
  3285.  
  3286.         Flush may be called at any time to ensure that the modifications which
  3287.         have been made are written to disk: if the flush succeeds, all the
  3288.         preceding modifications will have been written to disk.
  3289.  
  3290.         If any of the modifications fail, an exception will be thrown and the
  3291.         database will be left in a state in which each separate addition,
  3292.         replacement or deletion operation has either been fully performed or
  3293.         not performed at all: it is then up to the application to work out
  3294.         which operations need to be repeated.
  3295.  
  3296.         It's not valid to call flush within a transaction.
  3297.  
  3298.         Beware of calling flush too frequently: this will have a severe
  3299.         performance cost.
  3300.  
  3301.         Note that flush need not be called explicitly: it will be called
  3302.         automatically when the database is closed, or when a sufficient number
  3303.         of modifications have been made.
  3304.  
  3305.         Parameters:
  3306.         -----------
  3307.  
  3308.         Xapian::DatabaseError:  will be thrown if a problem occurs while
  3309.         modifying the database.
  3310.  
  3311.         Xapian::DatabaseCorruptError:  will be thrown if the database is in a
  3312.         corrupt state.
  3313.  
  3314.         Xapian::DatabaseLockError:  will be thrown if a lock couldn't be
  3315.         acquired on the database. 
  3316.         """
  3317.         return _xapian.WritableDatabase_flush(*args)
  3318.  
  3319.     
  3320.     def begin_transaction(*args):
  3321.         """
  3322.         Begin a transaction.
  3323.  
  3324.         void Xapian::WritableDatabase::begin_transaction(bool flushed=true)
  3325.  
  3326.         In Xapian a transaction is a group of modifications to the database
  3327.         which are linked such that either all will be applied simultaneously
  3328.         or none will be applied at all. Even in the case of a power failure,
  3329.         this characteristic should be preserved (as long as the filesystem
  3330.         isn't corrupted, etc).
  3331.  
  3332.         A transaction is started with begin_transaction() and can either be
  3333.         committed by calling commit_transaction() or aborted by calling
  3334.         cancel_transaction().
  3335.  
  3336.         By default, a transaction implicitly calls flush before and after so
  3337.         that the modifications stand and fall without affecting modifications
  3338.         before or after.
  3339.  
  3340.         The downside of this flushing is that small transactions cause
  3341.         modifications to be frequently flushed which can harm indexing
  3342.         performance in the same way that explicitly calling flush frequently
  3343.         can.
  3344.  
  3345.         If you're applying atomic groups of changes and only wish to ensure
  3346.         that each group is either applied or not applied, then you can prevent
  3347.         the automatic flush before and after the transaction by starting the
  3348.         transaction with begin_transaction(false). However, if
  3349.         cancel_transaction is called (or if commit_transaction isn't called
  3350.         before the WritableDatabase object is destroyed) then any changes
  3351.         which were pending before the transaction began will also be
  3352.         discarded.
  3353.  
  3354.         Transactions aren't currently supported by the InMemory backend.
  3355.  
  3356.         Parameters:
  3357.         -----------
  3358.  
  3359.         Xapian::UnimplementedError:  will be thrown if transactions are not
  3360.         available for this database type.
  3361.  
  3362.         Xapian::InvalidOperationError:  will be thrown if this is called at an
  3363.         invalid time, such as when a transaction is already in progress. 
  3364.         """
  3365.         return _xapian.WritableDatabase_begin_transaction(*args)
  3366.  
  3367.     
  3368.     def commit_transaction(*args):
  3369.         '''
  3370.         Complete the transaction currently in progress.
  3371.  
  3372.         void Xapian::WritableDatabase::commit_transaction()
  3373.  
  3374.         If this method completes successfully and this is a flushed
  3375.         transaction, all the database modifications made during the
  3376.         transaction will have been committed to the database.
  3377.  
  3378.         If an error occurs, an exception will be thrown, and none of the
  3379.         modifications made to the database during the transaction will have
  3380.         been applied to the database.
  3381.  
  3382.         In all cases the transaction will no longer be in progress.
  3383.  
  3384.         Parameters:
  3385.         -----------
  3386.  
  3387.         Xapian::DatabaseError:  will be thrown if a problem occurs while
  3388.         modifying the database.
  3389.  
  3390.         Xapian::DatabaseCorruptError:  will be thrown if the database is in a
  3391.         corrupt state.
  3392.  
  3393.         Xapian::InvalidOperationError:  will be thrown if a transaction is not
  3394.         currently in progress.
  3395.  
  3396.         Xapian::UnimplementedError:  will be thrown if transactions are not
  3397.         available for this database type. 
  3398.         '''
  3399.         return _xapian.WritableDatabase_commit_transaction(*args)
  3400.  
  3401.     
  3402.     def cancel_transaction(*args):
  3403.         '''
  3404.         Abort the transaction currently in progress, discarding the potential
  3405.         modifications made to the database.
  3406.  
  3407.         void Xapian::WritableDatabase::cancel_transaction()
  3408.  
  3409.         If an error occurs in this method, an exception will be thrown, but
  3410.         the transaction will be cancelled anyway.
  3411.  
  3412.         Parameters:
  3413.         -----------
  3414.  
  3415.         Xapian::DatabaseError:  will be thrown if a problem occurs while
  3416.         modifying the database.
  3417.  
  3418.         Xapian::DatabaseCorruptError:  will be thrown if the database is in a
  3419.         corrupt state.
  3420.  
  3421.         Xapian::InvalidOperationError:  will be thrown if a transaction is not
  3422.         currently in progress.
  3423.  
  3424.         Xapian::UnimplementedError:  will be thrown if transactions are not
  3425.         available for this database type. 
  3426.         '''
  3427.         return _xapian.WritableDatabase_cancel_transaction(*args)
  3428.  
  3429.     
  3430.     def add_document(*args):
  3431.         """
  3432.         Add a new document to the database.
  3433.  
  3434.         Xapian::docid Xapian::WritableDatabase::add_document(const
  3435.         Xapian::Document &document)
  3436.  
  3437.         This method adds the specified document to the database, returning a
  3438.         newly allocated document ID. Automatically allocated document IDs come
  3439.         from a per-database monotonically increasing counter, so IDs from
  3440.         deleted documents won't be reused.
  3441.  
  3442.         If you want to specify the document ID to be used, you should call
  3443.         replace_document() instead.
  3444.  
  3445.         Note that changes to the database won't be immediately committed to
  3446.         disk; see flush() for more details.
  3447.  
  3448.         As with all database modification operations, the effect is atomic:
  3449.         the document will either be fully added, or the document fails to be
  3450.         added and an exception is thrown (possibly at a later time when flush
  3451.         is called or the database is closed).
  3452.  
  3453.         Parameters:
  3454.         -----------
  3455.  
  3456.         document:  The new document to be added.
  3457.  
  3458.         The document ID of the newly added document.
  3459.  
  3460.         Parameters:
  3461.         -----------
  3462.  
  3463.         Xapian::DatabaseError:  will be thrown if a problem occurs while
  3464.         writing to the database.
  3465.  
  3466.         Xapian::DatabaseCorruptError:  will be thrown if the database is in a
  3467.         corrupt state. 
  3468.         """
  3469.         return _xapian.WritableDatabase_add_document(*args)
  3470.  
  3471.     
  3472.     def delete_document(*args):
  3473.         '''
  3474.         Delete any documents indexed by a term from the database.
  3475.  
  3476.         void Xapian::WritableDatabase::delete_document(const std::string
  3477.         &unique_term)
  3478.  
  3479.         This method removes any documents indexed by the specified term from
  3480.         the database.
  3481.  
  3482.         A major use is for convenience when UIDs from another system are
  3483.         mapped to terms in Xapian, although this method has other uses (for
  3484.         example, you could add a "deletion date" term to documents at index
  3485.         time and use this method to delete all documents due for deletion on a
  3486.         particular date).
  3487.  
  3488.         Parameters:
  3489.         -----------
  3490.  
  3491.         unique_term:  The term to remove references to.
  3492.  
  3493.         Parameters:
  3494.         -----------
  3495.  
  3496.         Xapian::DatabaseError:  will be thrown if a problem occurs while
  3497.         writing to the database.
  3498.  
  3499.         Xapian::DatabaseCorruptError:  will be thrown if the database is in a
  3500.         corrupt state. 
  3501.         '''
  3502.         return _xapian.WritableDatabase_delete_document(*args)
  3503.  
  3504.     
  3505.     def replace_document(*args):
  3506.         '''
  3507.         Replace any documents matching a term.
  3508.  
  3509.         Xapian::docid Xapian::WritableDatabase::replace_document(const
  3510.         std::string &unique_term, const Xapian::Document &document)
  3511.  
  3512.         This method replaces any documents indexed by the specified term with
  3513.         the specified document. If any documents are indexed by the term, the
  3514.         lowest document ID will be used for the document, otherwise a new
  3515.         document ID will be generated as for add_document.
  3516.  
  3517.         The intended use is to allow UIDs from another system to easily be
  3518.         mapped to terms in Xapian, although this method probably has other
  3519.         uses.
  3520.  
  3521.         Note that changes to the database won\'t be immediately committed to
  3522.         disk; see flush() for more details.
  3523.  
  3524.         As with all database modification operations, the effect is atomic:
  3525.         the document(s) will either be fully replaced, or the document(s) fail
  3526.         to be replaced and an exception is thrown (possibly at a later time
  3527.         when flush is called or the database is closed).
  3528.  
  3529.         Parameters:
  3530.         -----------
  3531.  
  3532.         unique_term:  The "unique" term.
  3533.  
  3534.         document:  The new document.
  3535.  
  3536.         The document ID that document was given.
  3537.  
  3538.         Parameters:
  3539.         -----------
  3540.  
  3541.         Xapian::DatabaseError:  will be thrown if a problem occurs while
  3542.         writing to the database.
  3543.  
  3544.         Xapian::DatabaseCorruptError:  will be thrown if the database is in a
  3545.         corrupt state. 
  3546.         '''
  3547.         return _xapian.WritableDatabase_replace_document(*args)
  3548.  
  3549.     
  3550.     def add_spelling(*args):
  3551.         '''
  3552.         Add a word to the spelling dictionary.
  3553.  
  3554.         void Xapian::WritableDatabase::add_spelling(const std::string &word,
  3555.         Xapian::termcount freqinc=1) const
  3556.  
  3557.         If the word is already present, its frequency is increased.
  3558.  
  3559.         Parameters:
  3560.         -----------
  3561.  
  3562.         word:  The word to add.
  3563.  
  3564.         freqinc:  How much to increase its frequency by (default 1). 
  3565.         '''
  3566.         return _xapian.WritableDatabase_add_spelling(*args)
  3567.  
  3568.     
  3569.     def remove_spelling(*args):
  3570.         """
  3571.         Remove a word from the spelling dictionary.
  3572.  
  3573.         void Xapian::WritableDatabase::remove_spelling(const std::string
  3574.         &word, Xapian::termcount freqdec=1) const
  3575.  
  3576.         The word's frequency is decreased, and if would become zero or less
  3577.         then the word is removed completely.
  3578.  
  3579.         Parameters:
  3580.         -----------
  3581.  
  3582.         word:  The word to remove.
  3583.  
  3584.         freqdec:  How much to decrease its frequency by (default 1). 
  3585.         """
  3586.         return _xapian.WritableDatabase_remove_spelling(*args)
  3587.  
  3588.     
  3589.     def add_synonym(*args):
  3590.         '''
  3591.         Add a synonym for a term.
  3592.  
  3593.         void Xapian::WritableDatabase::add_synonym(const std::string &term,
  3594.         const std::string &synonym) const
  3595.  
  3596.         If synonym is already a synonym for term, then no action is taken. 
  3597.         '''
  3598.         return _xapian.WritableDatabase_add_synonym(*args)
  3599.  
  3600.     
  3601.     def remove_synonym(*args):
  3602.         """
  3603.         Remove a synonym for a term.
  3604.  
  3605.         void Xapian::WritableDatabase::remove_synonym(const std::string &term,
  3606.         const std::string &synonym) const
  3607.  
  3608.         If synonym isn't a synonym for term, then no action is taken. 
  3609.         """
  3610.         return _xapian.WritableDatabase_remove_synonym(*args)
  3611.  
  3612.     
  3613.     def clear_synonyms(*args):
  3614.         '''
  3615.         Remove all synonyms for a term.
  3616.  
  3617.         void Xapian::WritableDatabase::clear_synonyms(const std::string &term)
  3618.         const
  3619.  
  3620.         If term has no synonyms, no action is taken. 
  3621.         '''
  3622.         return _xapian.WritableDatabase_clear_synonyms(*args)
  3623.  
  3624.     
  3625.     def set_metadata(*args):
  3626.         """
  3627.         Set the user-specified metadata associated with a given key.
  3628.  
  3629.         void Xapian::WritableDatabase::set_metadata(const std::string &key,
  3630.         const std::string &value)
  3631.  
  3632.         This method sets the metadata value associated with a given key. If
  3633.         there is already a metadata value stored in the database with the same
  3634.         key, the old value is replaced. If you want to delete an existing item
  3635.         of metadata, just set its value to the empty string.
  3636.  
  3637.         User-specified metadata allows you to store arbitrary information in
  3638.         the form of (key,tag) pairs.
  3639.  
  3640.         There's no hard limit on the number of metadata items, or the size of
  3641.         the metadata values. Metadata keys have a limited length, which
  3642.         depends on the backend. We recommend limiting them to 200 bytes. Empty
  3643.         keys are not valid, and specifying one will cause an exception.
  3644.  
  3645.         Metadata modifications are committed to disk in the same way as
  3646.         modifications to the documents in the database are: i.e.,
  3647.         modifications are atomic, and won't be committed to disk immediately
  3648.         (see flush() for more details). This allows metadata to be used to
  3649.         link databases with versioned external resources by storing the
  3650.         appropriate version number in a metadata item.
  3651.  
  3652.         You can also use the metadata to store arbitrary extra information
  3653.         associated with terms, documents, or postings by encoding the termname
  3654.         and/or document id into the metadata key.
  3655.  
  3656.         Parameters:
  3657.         -----------
  3658.  
  3659.         key:  The key of the metadata item to set.
  3660.  
  3661.         value:  The value of the metadata item to set.
  3662.  
  3663.         Parameters:
  3664.         -----------
  3665.  
  3666.         Xapian::DatabaseError:  will be thrown if a problem occurs while
  3667.         writing to the database.
  3668.  
  3669.         Xapian::DatabaseCorruptError:  will be thrown if the database is in a
  3670.         corrupt state.
  3671.  
  3672.         Xapian::InvalidArgumentError:  will be thrown if the key supplied is
  3673.         empty. 
  3674.         """
  3675.         return _xapian.WritableDatabase_set_metadata(*args)
  3676.  
  3677.     
  3678.     def __str__(*args):
  3679.         '''
  3680.         Return a string describing this object.
  3681.  
  3682.         std::string Xapian::WritableDatabase::get_description() const 
  3683.         '''
  3684.         return _xapian.WritableDatabase___str__(*args)
  3685.  
  3686.     
  3687.     def get_description(*args):
  3688.         '''
  3689.         Return a string describing this object.
  3690.  
  3691.         std::string Xapian::WritableDatabase::get_description() const 
  3692.         '''
  3693.         return _xapian.WritableDatabase_get_description(*args)
  3694.  
  3695.  
  3696. WritableDatabase.flush = new_instancemethod(_xapian.WritableDatabase_flush, None, WritableDatabase)
  3697. WritableDatabase.begin_transaction = new_instancemethod(_xapian.WritableDatabase_begin_transaction, None, WritableDatabase)
  3698. WritableDatabase.commit_transaction = new_instancemethod(_xapian.WritableDatabase_commit_transaction, None, WritableDatabase)
  3699. WritableDatabase.cancel_transaction = new_instancemethod(_xapian.WritableDatabase_cancel_transaction, None, WritableDatabase)
  3700. WritableDatabase.add_document = new_instancemethod(_xapian.WritableDatabase_add_document, None, WritableDatabase)
  3701. WritableDatabase.delete_document = new_instancemethod(_xapian.WritableDatabase_delete_document, None, WritableDatabase)
  3702. WritableDatabase.replace_document = new_instancemethod(_xapian.WritableDatabase_replace_document, None, WritableDatabase)
  3703. WritableDatabase.add_spelling = new_instancemethod(_xapian.WritableDatabase_add_spelling, None, WritableDatabase)
  3704. WritableDatabase.remove_spelling = new_instancemethod(_xapian.WritableDatabase_remove_spelling, None, WritableDatabase)
  3705. WritableDatabase.add_synonym = new_instancemethod(_xapian.WritableDatabase_add_synonym, None, WritableDatabase)
  3706. WritableDatabase.remove_synonym = new_instancemethod(_xapian.WritableDatabase_remove_synonym, None, WritableDatabase)
  3707. WritableDatabase.clear_synonyms = new_instancemethod(_xapian.WritableDatabase_clear_synonyms, None, WritableDatabase)
  3708. WritableDatabase.set_metadata = new_instancemethod(_xapian.WritableDatabase_set_metadata, None, WritableDatabase)
  3709. WritableDatabase.__str__ = new_instancemethod(_xapian.WritableDatabase___str__, None, WritableDatabase)
  3710. WritableDatabase.get_description = new_instancemethod(_xapian.WritableDatabase_get_description, None, WritableDatabase)
  3711. WritableDatabase_swigregister = _xapian.WritableDatabase_swigregister
  3712. WritableDatabase_swigregister(WritableDatabase)
  3713. DB_CREATE_OR_OPEN = _xapian.DB_CREATE_OR_OPEN
  3714. DB_CREATE = _xapian.DB_CREATE
  3715. DB_CREATE_OR_OVERWRITE = _xapian.DB_CREATE_OR_OVERWRITE
  3716. DB_OPEN = _xapian.DB_OPEN
  3717.  
  3718. def open_stub(*args):
  3719.     '''
  3720.     Construct a Database object for a stub database file.
  3721.  
  3722.     XAPIAN_VISIBILITY_DEFAULT Database Xapian::Auto::open_stub(const
  3723.     std::string &file)
  3724.  
  3725.     The stub database file contains serialised parameters for one or more
  3726.     databases.
  3727.  
  3728.     Parameters:
  3729.     -----------
  3730.  
  3731.     file:  pathname of the stub database file. 
  3732.     '''
  3733.     return _xapian.open_stub(*args)
  3734.  
  3735.  
  3736. def inmemory_open(*args):
  3737.     '''
  3738.     Construct a Database object for update access to an InMemory database.
  3739.  
  3740.     XAPIAN_VISIBILITY_DEFAULT WritableDatabase Xapian::InMemory::open()
  3741.  
  3742.     A new, empty database is created for each call. 
  3743.     '''
  3744.     return _xapian.inmemory_open(*args)
  3745.  
  3746.  
  3747. class Query(object):
  3748.     '''
  3749.     Class representing a query.
  3750.  
  3751.     Queries are represented as a tree of objects. 
  3752.     '''
  3753.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  3754.     __repr__ = _swig_repr
  3755.     OP_AND = _xapian.Query_OP_AND
  3756.     OP_OR = _xapian.Query_OP_OR
  3757.     OP_AND_NOT = _xapian.Query_OP_AND_NOT
  3758.     OP_XOR = _xapian.Query_OP_XOR
  3759.     OP_AND_MAYBE = _xapian.Query_OP_AND_MAYBE
  3760.     OP_FILTER = _xapian.Query_OP_FILTER
  3761.     OP_NEAR = _xapian.Query_OP_NEAR
  3762.     OP_PHRASE = _xapian.Query_OP_PHRASE
  3763.     OP_VALUE_RANGE = _xapian.Query_OP_VALUE_RANGE
  3764.     OP_SCALE_WEIGHT = _xapian.Query_OP_SCALE_WEIGHT
  3765.     OP_ELITE_SET = _xapian.Query_OP_ELITE_SET
  3766.     OP_VALUE_GE = _xapian.Query_OP_VALUE_GE
  3767.     OP_VALUE_LE = _xapian.Query_OP_VALUE_LE
  3768.     
  3769.     def __init__(self, *args):
  3770.         '''
  3771.         Construct a value comparison query on a document value.
  3772.  
  3773.         Xapian::Query::Query(Query::op op_, Xapian::valueno valno, const
  3774.         std::string &value)
  3775.  
  3776.         This query matches those documents which have a value stored in the
  3777.         slot given by valno which compares, as specified by the operator, to
  3778.         value.
  3779.  
  3780.         Parameters:
  3781.         -----------
  3782.  
  3783.         op_:  The operator to use for the query. Currently, must be
  3784.         OP_VALUE_GE or OP_VALUE_LE.
  3785.  
  3786.         valno:  The slot number to get the value from.
  3787.  
  3788.         value:  The value to compare. 
  3789.         '''
  3790.         _xapian.Query_swiginit(self, _xapian.new_Query(*args))
  3791.  
  3792.     __swig_destroy__ = _xapian.delete_Query
  3793.     
  3794.     def get_length(*args):
  3795.         '''
  3796.         Get the length of the query, used by some ranking formulae.
  3797.  
  3798.         Xapian::termcount Xapian::Query::get_length() const
  3799.  
  3800.         This value is calculated automatically - if you want to override it
  3801.         you can pass a different value to Enquire::set_query(). 
  3802.         '''
  3803.         return _xapian.Query_get_length(*args)
  3804.  
  3805.     
  3806.     def get_terms_begin(*args):
  3807.         '''
  3808.         Return a Xapian::TermIterator returning all the terms in the query, in
  3809.         order of termpos.
  3810.  
  3811.         TermIterator Xapian::Query::get_terms_begin() const
  3812.  
  3813.         If multiple terms have the same term position, their order is
  3814.         unspecified. Duplicates (same term and termpos) will be removed. 
  3815.         '''
  3816.         return _xapian.Query_get_terms_begin(*args)
  3817.  
  3818.     
  3819.     def get_terms_end(*args):
  3820.         '''
  3821.         Return a Xapian::TermIterator to the end of the list of terms in the
  3822.         query.
  3823.  
  3824.         TermIterator Xapian::Query::get_terms_end() const 
  3825.         '''
  3826.         return _xapian.Query_get_terms_end(*args)
  3827.  
  3828.     
  3829.     def empty(*args):
  3830.         '''
  3831.         Test if the query is empty (i.e.
  3832.  
  3833.         bool Xapian::Query::empty() const
  3834.  
  3835.         was constructed using the default ctor or with an empty iterator
  3836.         ctor). 
  3837.         '''
  3838.         return _xapian.Query_empty(*args)
  3839.  
  3840.     
  3841.     def __str__(*args):
  3842.         '''
  3843.         Return a string describing this object.
  3844.  
  3845.         std::string Xapian::Query::get_description() const 
  3846.         '''
  3847.         return _xapian.Query___str__(*args)
  3848.  
  3849.     
  3850.     def get_description(*args):
  3851.         '''
  3852.         Return a string describing this object.
  3853.  
  3854.         std::string Xapian::Query::get_description() const 
  3855.         '''
  3856.         return _xapian.Query_get_description(*args)
  3857.  
  3858.  
  3859. Query.get_length = new_instancemethod(_xapian.Query_get_length, None, Query)
  3860. Query.get_terms_begin = new_instancemethod(_xapian.Query_get_terms_begin, None, Query)
  3861. Query.get_terms_end = new_instancemethod(_xapian.Query_get_terms_end, None, Query)
  3862. Query.empty = new_instancemethod(_xapian.Query_empty, None, Query)
  3863. Query.__str__ = new_instancemethod(_xapian.Query___str__, None, Query)
  3864. Query.get_description = new_instancemethod(_xapian.Query_get_description, None, Query)
  3865. Query_swigregister = _xapian.Query_swigregister
  3866. Query_swigregister(Query)
  3867. quartz_open = _xapian.quartz_open
  3868.  
  3869. def flint_open(*args):
  3870.     '''
  3871.     Construct a Database object for update access to a Flint database.
  3872.  
  3873.     XAPIAN_VISIBILITY_DEFAULT WritableDatabase Xapian::Flint::open(const
  3874.     std::string &dir, int action, int block_size=8192)
  3875.  
  3876.     Parameters:
  3877.     -----------
  3878.  
  3879.     dir:  pathname of the directory containing the database.
  3880.  
  3881.     action:  determines handling of existing/non-existing database:
  3882.     Xapian::DB_CREATE fail if database already exist, otherwise create new
  3883.     database.
  3884.  
  3885.     Xapian::DB_CREATE_OR_OPEN open existing database, or create new
  3886.     database if none exists.
  3887.  
  3888.     Xapian::DB_CREATE_OR_OVERWRITE overwrite existing database, or create
  3889.     new database if none exists.
  3890.  
  3891.     Xapian::DB_OPEN open existing database, failing if none exists.
  3892.  
  3893.     block_size:  the Btree blocksize to use (in bytes), which must be a
  3894.     power of two between 2048 and 65536 (inclusive). The default (also
  3895.     used if an invalid value if passed) is 8192 bytes. This parameter is
  3896.     ignored when opening an existing database. 
  3897.     '''
  3898.     return _xapian.flint_open(*args)
  3899.  
  3900.  
  3901. def remote_open(*args):
  3902.     """
  3903.     Construct a Database object for read-only access to a remote database
  3904.     accessed via a program.
  3905.  
  3906.     XAPIAN_VISIBILITY_DEFAULT Database Xapian::Remote::open(const
  3907.     std::string &program, const std::string &args, Xapian::timeout
  3908.     timeout=10000)
  3909.  
  3910.     Access to the remote database is done by running an external program
  3911.     and communicating with it on stdin/stdout.
  3912.  
  3913.     Parameters:
  3914.     -----------
  3915.  
  3916.     program:  the external program to run.
  3917.  
  3918.     args:  space-separated list of arguments to pass to program.
  3919.  
  3920.     timeout:  timeout in milliseconds. If this timeout is exceeded for any
  3921.     individual operation on the remote database then
  3922.     Xapian::NetworkTimeoutError is thrown. A timeout of 0 means don't
  3923.     timeout. (Default is 10000ms, which is 10 seconds). 
  3924.     """
  3925.     return _xapian.remote_open(*args)
  3926.  
  3927.  
  3928. def remote_open_writable(*args):
  3929.     """
  3930.     Construct a WritableDatabase object for update access to a remote
  3931.     database accessed via a program.
  3932.  
  3933.     XAPIAN_VISIBILITY_DEFAULT WritableDatabase
  3934.     Xapian::Remote::open_writable(const std::string &program, const
  3935.     std::string &args, Xapian::timeout timeout=0)
  3936.  
  3937.     Access to the remote database is done by running an external program
  3938.     and communicating with it on stdin/stdout.
  3939.  
  3940.     Parameters:
  3941.     -----------
  3942.  
  3943.     program:  the external program to run.
  3944.  
  3945.     args:  space-separated list of arguments to pass to program.
  3946.  
  3947.     timeout:  timeout in milliseconds. If this timeout is exceeded for any
  3948.     individual operation on the remote database then
  3949.     Xapian::NetworkTimeoutError is thrown. (Default is 0, which means
  3950.     don't timeout). 
  3951.     """
  3952.     return _xapian.remote_open_writable(*args)
  3953.  
  3954.  
  3955. class Stopper(object):
  3956.     '''
  3957.     Base class for stop-word decision functor. 
  3958.     '''
  3959.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  3960.     __repr__ = _swig_repr
  3961.     __swig_destroy__ = _xapian.delete_Stopper
  3962.     
  3963.     def __str__(*args):
  3964.         '''
  3965.         Return a string describing this object.
  3966.  
  3967.         virtual std::string Xapian::Stopper::get_description() const 
  3968.         '''
  3969.         return _xapian.Stopper___str__(*args)
  3970.  
  3971.     
  3972.     def get_description(*args):
  3973.         '''
  3974.         Return a string describing this object.
  3975.  
  3976.         virtual std::string Xapian::Stopper::get_description() const 
  3977.         '''
  3978.         return _xapian.Stopper_get_description(*args)
  3979.  
  3980.     
  3981.     def __init__(self, *args):
  3982.         if self.__class__ == Stopper:
  3983.             args = (None,) + args
  3984.         else:
  3985.             args = (self,) + args
  3986.         _xapian.Stopper_swiginit(self, _xapian.new_Stopper(*args))
  3987.  
  3988.     
  3989.     def __disown__(self):
  3990.         self.this.disown()
  3991.         _xapian.disown_Stopper(self)
  3992.         return weakref_proxy(self)
  3993.  
  3994.  
  3995. Stopper.__call__ = new_instancemethod(_xapian.Stopper___call__, None, Stopper)
  3996. Stopper.__str__ = new_instancemethod(_xapian.Stopper___str__, None, Stopper)
  3997. Stopper.get_description = new_instancemethod(_xapian.Stopper_get_description, None, Stopper)
  3998. Stopper_swigregister = _xapian.Stopper_swigregister
  3999. Stopper_swigregister(Stopper)
  4000.  
  4001. class SimpleStopper(Stopper):
  4002.     '''
  4003.     Simple implementation of Stopper class - this will suit most users. 
  4004.     '''
  4005.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  4006.     __repr__ = _swig_repr
  4007.     
  4008.     def __init__(self, *args):
  4009.         '''
  4010.         Initialise from a pair of iterators.
  4011.  
  4012.         Xapian::SimpleStopper::SimpleStopper(Iterator begin, Iterator end) 
  4013.         '''
  4014.         _xapian.SimpleStopper_swiginit(self, _xapian.new_SimpleStopper(*args))
  4015.  
  4016.     
  4017.     def add(*args):
  4018.         '''
  4019.         Add a single stop word.
  4020.  
  4021.         void Xapian::SimpleStopper::add(const std::string &word) 
  4022.         '''
  4023.         return _xapian.SimpleStopper_add(*args)
  4024.  
  4025.     __swig_destroy__ = _xapian.delete_SimpleStopper
  4026.  
  4027. SimpleStopper.add = new_instancemethod(_xapian.SimpleStopper_add, None, SimpleStopper)
  4028. SimpleStopper_swigregister = _xapian.SimpleStopper_swigregister
  4029. SimpleStopper_swigregister(SimpleStopper)
  4030.  
  4031. class ValueRangeProcessor(object):
  4032.     '''
  4033.     Base class for value range processors. 
  4034.     '''
  4035.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  4036.     __repr__ = _swig_repr
  4037.     __swig_destroy__ = _xapian.delete_ValueRangeProcessor
  4038.     
  4039.     def __init__(self, *args):
  4040.         if self.__class__ == ValueRangeProcessor:
  4041.             args = (None,) + args
  4042.         else:
  4043.             args = (self,) + args
  4044.         _xapian.ValueRangeProcessor_swiginit(self, _xapian.new_ValueRangeProcessor(*args))
  4045.  
  4046.     
  4047.     def __disown__(self):
  4048.         self.this.disown()
  4049.         _xapian.disown_ValueRangeProcessor(self)
  4050.         return weakref_proxy(self)
  4051.  
  4052.  
  4053. ValueRangeProcessor.__call__ = new_instancemethod(_xapian.ValueRangeProcessor___call__, None, ValueRangeProcessor)
  4054. ValueRangeProcessor.__call = new_instancemethod(_xapian.ValueRangeProcessor___call, None, ValueRangeProcessor)
  4055. ValueRangeProcessor_swigregister = _xapian.ValueRangeProcessor_swigregister
  4056. ValueRangeProcessor_swigregister(ValueRangeProcessor)
  4057.  
  4058. class StringValueRangeProcessor(ValueRangeProcessor):
  4059.     '''
  4060.     Handle a string range.
  4061.  
  4062.     The end points can be any strings. 
  4063.     '''
  4064.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  4065.     __repr__ = _swig_repr
  4066.     
  4067.     def __init__(self, *args):
  4068.         '''
  4069.         Constructor.
  4070.  
  4071.         Xapian::StringValueRangeProcessor::StringValueRangeProcessor(Xapian::v
  4072.         alueno valno_)
  4073.  
  4074.         Parameters:
  4075.         -----------
  4076.  
  4077.         valno_:  The value number to return from operator(). 
  4078.         '''
  4079.         _xapian.StringValueRangeProcessor_swiginit(self, _xapian.new_StringValueRangeProcessor(*args))
  4080.  
  4081.     __swig_destroy__ = _xapian.delete_StringValueRangeProcessor
  4082.  
  4083. StringValueRangeProcessor_swigregister = _xapian.StringValueRangeProcessor_swigregister
  4084. StringValueRangeProcessor_swigregister(StringValueRangeProcessor)
  4085.  
  4086. class DateValueRangeProcessor(ValueRangeProcessor):
  4087.     '''
  4088.     Handle a date range.
  4089.  
  4090.     Begin and end must be dates in a recognised format. 
  4091.     '''
  4092.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  4093.     __repr__ = _swig_repr
  4094.     
  4095.     def __init__(self, *args):
  4096.         '''
  4097.         Constructor.
  4098.  
  4099.         Xapian::DateValueRangeProcessor::DateValueRangeProcessor(Xapian::value
  4100.         no valno_, bool prefer_mdy_=false, int epoch_year_=1970)
  4101.  
  4102.         Parameters:
  4103.         -----------
  4104.  
  4105.         valno_:  The value number to return from operator().
  4106.  
  4107.         prefer_mdy_:  Should ambiguous dates be interpreted as month/day/year
  4108.         rather than day/month/year? (default: false)
  4109.  
  4110.         epoch_year_:  Year to use as the epoch for dates with 2 digit years
  4111.         (default: 1970, so 1/1/69 is 2069 while 1/1/70 is 1970). 
  4112.         '''
  4113.         _xapian.DateValueRangeProcessor_swiginit(self, _xapian.new_DateValueRangeProcessor(*args))
  4114.  
  4115.     __swig_destroy__ = _xapian.delete_DateValueRangeProcessor
  4116.  
  4117. DateValueRangeProcessor_swigregister = _xapian.DateValueRangeProcessor_swigregister
  4118. DateValueRangeProcessor_swigregister(DateValueRangeProcessor)
  4119.  
  4120. class NumberValueRangeProcessor(ValueRangeProcessor):
  4121.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  4122.     __repr__ = _swig_repr
  4123.     
  4124.     def __init__(self, *args):
  4125.         _xapian.NumberValueRangeProcessor_swiginit(self, _xapian.new_NumberValueRangeProcessor(*args))
  4126.  
  4127.     __swig_destroy__ = _xapian.delete_NumberValueRangeProcessor
  4128.  
  4129. NumberValueRangeProcessor_swigregister = _xapian.NumberValueRangeProcessor_swigregister
  4130. NumberValueRangeProcessor_swigregister(NumberValueRangeProcessor)
  4131.  
  4132. class QueryParser(object):
  4133.     '''
  4134.     Build a Xapian::Query object from a user query string. 
  4135.     '''
  4136.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  4137.     __repr__ = _swig_repr
  4138.     FLAG_BOOLEAN = _xapian.QueryParser_FLAG_BOOLEAN
  4139.     FLAG_PHRASE = _xapian.QueryParser_FLAG_PHRASE
  4140.     FLAG_LOVEHATE = _xapian.QueryParser_FLAG_LOVEHATE
  4141.     FLAG_BOOLEAN_ANY_CASE = _xapian.QueryParser_FLAG_BOOLEAN_ANY_CASE
  4142.     FLAG_WILDCARD = _xapian.QueryParser_FLAG_WILDCARD
  4143.     FLAG_PURE_NOT = _xapian.QueryParser_FLAG_PURE_NOT
  4144.     FLAG_PARTIAL = _xapian.QueryParser_FLAG_PARTIAL
  4145.     FLAG_SPELLING_CORRECTION = _xapian.QueryParser_FLAG_SPELLING_CORRECTION
  4146.     FLAG_SYNONYM = _xapian.QueryParser_FLAG_SYNONYM
  4147.     FLAG_AUTO_SYNONYMS = _xapian.QueryParser_FLAG_AUTO_SYNONYMS
  4148.     FLAG_AUTO_MULTIWORD_SYNONYMS = _xapian.QueryParser_FLAG_AUTO_MULTIWORD_SYNONYMS
  4149.     STEM_NONE = _xapian.QueryParser_STEM_NONE
  4150.     STEM_SOME = _xapian.QueryParser_STEM_SOME
  4151.     STEM_ALL = _xapian.QueryParser_STEM_ALL
  4152.     
  4153.     def __init__(self, *args):
  4154.         '''
  4155.         Default constructor.
  4156.  
  4157.         Xapian::QueryParser::QueryParser() 
  4158.         '''
  4159.         _xapian.QueryParser_swiginit(self, _xapian.new_QueryParser(*args))
  4160.  
  4161.     __swig_destroy__ = _xapian.delete_QueryParser
  4162.     
  4163.     def set_stemmer(*args):
  4164.         '''
  4165.         Set the stemmer.
  4166.  
  4167.         void Xapian::QueryParser::set_stemmer(const Xapian::Stem &stemmer)
  4168.  
  4169.         This sets the stemming algorithm which will be used by the query
  4170.         parser. Note that the stemming algorithm will only be used according
  4171.         to the stemming strategy set by set_stemming_strategy(), which
  4172.         defaults to STEM_NONE. Therefore, to use a stemming algorithm, you
  4173.         will also need to call set_stemming_strategy() with a value other than
  4174.         STEM_NONE. 
  4175.         '''
  4176.         return _xapian.QueryParser_set_stemmer(*args)
  4177.  
  4178.     
  4179.     def set_stemming_strategy(*args):
  4180.         '''
  4181.         Set the stemming strategy.
  4182.  
  4183.         void Xapian::QueryParser::set_stemming_strategy(stem_strategy
  4184.         strategy)
  4185.  
  4186.         This controls how the query parser will apply the stemming algorithm.
  4187.         The default value is STEM_NONE. The possible values are:
  4188.  
  4189.         STEM_NONE: Don\'t perform any stemming.
  4190.  
  4191.         STEM_SOME: Search for stemmed forms of terms except for those which
  4192.         start with a capital letter, or are followed by certain characters
  4193.         (currently: (/@<>=*[{" ), or are used with operators which need
  4194.         positional information. Stemmed terms are prefixed with \'Z\'.
  4195.  
  4196.         STEM_ALL: Search for stemmed forms of all words (note: no \'Z\' prefix
  4197.         is added).
  4198.  
  4199.         Note that the stemming algorithm is only applied to words in
  4200.         probabilistic fields - boolean filter terms are never stemmed. 
  4201.         '''
  4202.         return _xapian.QueryParser_set_stemming_strategy(*args)
  4203.  
  4204.     
  4205.     def set_stopper(*args):
  4206.         '''
  4207.         Set the stopper.
  4208.  
  4209.         void Xapian::QueryParser::set_stopper(const Stopper *stop=NULL) 
  4210.         '''
  4211.         return _xapian.QueryParser_set_stopper(*args)
  4212.  
  4213.     
  4214.     def set_default_op(*args):
  4215.         '''
  4216.         Set the default boolean operator.
  4217.  
  4218.         void Xapian::QueryParser::set_default_op(Query::op default_op) 
  4219.         '''
  4220.         return _xapian.QueryParser_set_default_op(*args)
  4221.  
  4222.     
  4223.     def get_default_op(*args):
  4224.         '''
  4225.         Get the default boolean operator.
  4226.  
  4227.         Query::op Xapian::QueryParser::get_default_op() const 
  4228.         '''
  4229.         return _xapian.QueryParser_get_default_op(*args)
  4230.  
  4231.     
  4232.     def set_database(*args):
  4233.         '''
  4234.         Specify the database being searched.
  4235.  
  4236.         void Xapian::QueryParser::set_database(const Database &db) 
  4237.         '''
  4238.         return _xapian.QueryParser_set_database(*args)
  4239.  
  4240.     
  4241.     def parse_query(*args):
  4242.         '''
  4243.         Parse a query.
  4244.  
  4245.         Query Xapian::QueryParser::parse_query(const std::string
  4246.         &query_string, unsigned flags=FLAG_PHRASE|FLAG_BOOLEAN|FLAG_LOVEHATE,
  4247.         const std::string &default_prefix="")
  4248.  
  4249.         Parameters:
  4250.         -----------
  4251.  
  4252.         query_string:  A free-text query as entered by a user
  4253.  
  4254.         flags:  Zero or more Query::feature_flag specifying what features the
  4255.         QueryParser should support. Combine multiple values with bitwise-or
  4256.         (|).
  4257.  
  4258.         default_prefix:  The default term prefix to use (default none). For
  4259.         example, you can pass "A" when parsing an "Author" field. 
  4260.         '''
  4261.         return _xapian.QueryParser_parse_query(*args)
  4262.  
  4263.     
  4264.     def add_prefix(*args):
  4265.         '''
  4266.         Add a probabilistic term prefix.
  4267.  
  4268.         void Xapian::QueryParser::add_prefix(const std::string &field, const
  4269.         std::string &prefix)
  4270.  
  4271.         For example:
  4272.  
  4273.         This allows the user to search for author:Orwell which will be
  4274.         converted to a search for the term "Aorwell".
  4275.  
  4276.         Multiple fields can be mapped to the same prefix. For example, you can
  4277.         make title: and subject: aliases for each other.
  4278.  
  4279.         As of 1.0.4, you can call this method multiple times with the same
  4280.         value of field to allow a single field to be mapped to multiple
  4281.         prefixes. Multiple terms being generated for such a field, and
  4282.         combined with  Xapian::Query::OP_OR.
  4283.  
  4284.         If any prefixes are specified for the empty field name (i.e. you call
  4285.         this method with an empty string as the first parameter) these
  4286.         prefixes will be used as the default prefix. If you do this and also
  4287.         specify the default_prefix parameter to  parse_query(), then the
  4288.         default_prefix parameter will override.
  4289.  
  4290.         If you call  add_prefix() and  add_boolean_prefix() for the same value
  4291.         of field, a Xapian::InvalidOperationError exception will be thrown.
  4292.  
  4293.         In 1.0.3 and earlier, subsequent calls to this method with the same
  4294.         value of field had no effect.
  4295.  
  4296.         Parameters:
  4297.         -----------
  4298.  
  4299.         field:  The user visible field name
  4300.  
  4301.         prefix:  The term prefix to map this to 
  4302.         '''
  4303.         return _xapian.QueryParser_add_prefix(*args)
  4304.  
  4305.     
  4306.     def add_boolean_prefix(*args):
  4307.         '''
  4308.         Add a boolean term prefix allowing the user to restrict a search with
  4309.         a boolean filter specified in the free text query.
  4310.  
  4311.         void Xapian::QueryParser::add_boolean_prefix(const std::string &field,
  4312.         const std::string &prefix)
  4313.  
  4314.         For example:
  4315.  
  4316.         This allows the user to restrict a search with site:xapian.org which
  4317.         will be converted to Hxapian.org combined with any probabilistic query
  4318.         with  Xapian::Query::OP_FILTER.
  4319.  
  4320.         If multiple boolean filters are specified in a query for the same
  4321.         prefix, they will be combined with the  Xapian::Query::OP_OR operator.
  4322.         Then, if there are boolean filters for different prefixes, they will
  4323.         be combined with the  Xapian::Query::OP_AND operator.
  4324.  
  4325.         Multiple fields can be mapped to the same prefix (so for example you
  4326.         can make site: and domain: aliases for each other). Instances of
  4327.         fields with different aliases but the same prefix will still be
  4328.         combined with the OR operator.
  4329.  
  4330.         For example, if "site" and "domain" map to "H", but author maps
  4331.         to "A", a search for "site:foo domain:bar author:Fred" will map to
  4332.         "(Hfoo OR Hbar) AND Afred".
  4333.  
  4334.         As of 1.0.4, you can call this method multiple times with the same
  4335.         value of field to allow a single field to be mapped to multiple
  4336.         prefixes. Multiple terms being generated for such a field, and
  4337.         combined with  Xapian::Query::OP_OR.
  4338.  
  4339.         Calling this method with an empty string for field will cause a
  4340.         Xapian::InvalidArgumentError.
  4341.  
  4342.         If you call  add_prefix() and  add_boolean_prefix() for the same value
  4343.         of field, a Xapian::InvalidOperationError exception will be thrown.
  4344.  
  4345.         In 1.0.3 and earlier, subsequent calls to this method with the same
  4346.         value of field had no effect.
  4347.  
  4348.         Parameters:
  4349.         -----------
  4350.  
  4351.         field:  The user visible field name
  4352.  
  4353.         prefix:  The term prefix to map this to 
  4354.         '''
  4355.         return _xapian.QueryParser_add_boolean_prefix(*args)
  4356.  
  4357.     
  4358.     def stoplist_begin(*args):
  4359.         '''
  4360.         Iterate over terms omitted from the query as stopwords.
  4361.  
  4362.         TermIterator Xapian::QueryParser::stoplist_begin() const 
  4363.         '''
  4364.         return _xapian.QueryParser_stoplist_begin(*args)
  4365.  
  4366.     
  4367.     def stoplist_end(*args):
  4368.         '''TermIterator Xapian::QueryParser::stoplist_end() const '''
  4369.         return _xapian.QueryParser_stoplist_end(*args)
  4370.  
  4371.     
  4372.     def unstem_begin(*args):
  4373.         '''
  4374.         Iterate over unstemmed forms of the given (stemmed) term used in the
  4375.         query.
  4376.  
  4377.         TermIterator Xapian::QueryParser::unstem_begin(const std::string
  4378.         &term) const 
  4379.         '''
  4380.         return _xapian.QueryParser_unstem_begin(*args)
  4381.  
  4382.     
  4383.     def unstem_end(*args):
  4384.         '''
  4385.         TermIterator
  4386.         Xapian::QueryParser::unstem_end(const std::string &) const 
  4387.         '''
  4388.         return _xapian.QueryParser_unstem_end(*args)
  4389.  
  4390.     
  4391.     def add_valuerangeprocessor(*args):
  4392.         '''
  4393.         Register a ValueRangeProcessor.
  4394.  
  4395.         void Xapian::QueryParser::add_valuerangeprocessor(Xapian::ValueRangePr
  4396.         ocessor *vrproc) 
  4397.         '''
  4398.         return _xapian.QueryParser_add_valuerangeprocessor(*args)
  4399.  
  4400.     
  4401.     def get_corrected_query_string(*args):
  4402.         '''
  4403.         Get the spelling-corrected query string.
  4404.  
  4405.         std::string Xapian::QueryParser::get_corrected_query_string() const
  4406.  
  4407.         This will only be set if FLAG_SPELLING_CORRECTION is specified when
  4408.         QueryParser::parse_query() was last called.
  4409.  
  4410.         If there were no corrections, an empty string is returned. 
  4411.         '''
  4412.         return _xapian.QueryParser_get_corrected_query_string(*args)
  4413.  
  4414.     
  4415.     def __str__(*args):
  4416.         '''
  4417.         Return a string describing this object.
  4418.  
  4419.         std::string Xapian::QueryParser::get_description() const 
  4420.         '''
  4421.         return _xapian.QueryParser___str__(*args)
  4422.  
  4423.     
  4424.     def get_description(*args):
  4425.         '''
  4426.         Return a string describing this object.
  4427.  
  4428.         std::string Xapian::QueryParser::get_description() const 
  4429.         '''
  4430.         return _xapian.QueryParser_get_description(*args)
  4431.  
  4432.  
  4433. QueryParser.set_stemmer = new_instancemethod(_xapian.QueryParser_set_stemmer, None, QueryParser)
  4434. QueryParser.set_stemming_strategy = new_instancemethod(_xapian.QueryParser_set_stemming_strategy, None, QueryParser)
  4435. QueryParser.set_stopper = new_instancemethod(_xapian.QueryParser_set_stopper, None, QueryParser)
  4436. QueryParser.set_default_op = new_instancemethod(_xapian.QueryParser_set_default_op, None, QueryParser)
  4437. QueryParser.get_default_op = new_instancemethod(_xapian.QueryParser_get_default_op, None, QueryParser)
  4438. QueryParser.set_database = new_instancemethod(_xapian.QueryParser_set_database, None, QueryParser)
  4439. QueryParser.parse_query = new_instancemethod(_xapian.QueryParser_parse_query, None, QueryParser)
  4440. QueryParser.add_prefix = new_instancemethod(_xapian.QueryParser_add_prefix, None, QueryParser)
  4441. QueryParser.add_boolean_prefix = new_instancemethod(_xapian.QueryParser_add_boolean_prefix, None, QueryParser)
  4442. QueryParser.stoplist_begin = new_instancemethod(_xapian.QueryParser_stoplist_begin, None, QueryParser)
  4443. QueryParser.stoplist_end = new_instancemethod(_xapian.QueryParser_stoplist_end, None, QueryParser)
  4444. QueryParser.unstem_begin = new_instancemethod(_xapian.QueryParser_unstem_begin, None, QueryParser)
  4445. QueryParser.unstem_end = new_instancemethod(_xapian.QueryParser_unstem_end, None, QueryParser)
  4446. QueryParser.add_valuerangeprocessor = new_instancemethod(_xapian.QueryParser_add_valuerangeprocessor, None, QueryParser)
  4447. QueryParser.get_corrected_query_string = new_instancemethod(_xapian.QueryParser_get_corrected_query_string, None, QueryParser)
  4448. QueryParser.__str__ = new_instancemethod(_xapian.QueryParser___str__, None, QueryParser)
  4449. QueryParser.get_description = new_instancemethod(_xapian.QueryParser_get_description, None, QueryParser)
  4450. QueryParser_swigregister = _xapian.QueryParser_swigregister
  4451. QueryParser_swigregister(QueryParser)
  4452. sortable_serialise = _xapian.sortable_serialise
  4453. sortable_unserialise = _xapian.sortable_unserialise
  4454.  
  4455. class Stem(object):
  4456.     '''
  4457.     Class representing a stemming algorithm. 
  4458.     '''
  4459.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  4460.     __repr__ = _swig_repr
  4461.     
  4462.     def __init__(self, *args):
  4463.         """
  4464.         Construct a Xapian::Stem object for a particular language.
  4465.  
  4466.         Xapian::Stem::Stem(const std::string &language)
  4467.  
  4468.         Parameters:
  4469.         -----------
  4470.  
  4471.         language:  Either the English name for the language or the two letter
  4472.         ISO639 code.
  4473.  
  4474.         The following language names are understood (aliases follow the name):
  4475.  
  4476.         none - don't stem terms
  4477.  
  4478.         danish (da)
  4479.  
  4480.         dutch (nl)
  4481.  
  4482.         english (en) - Martin Porter's 2002 revision of his stemmer
  4483.  
  4484.         english_lovins (lovins) - Lovin's stemmer
  4485.  
  4486.         english_porter (porter) - Porter's stemmer as described in his 1980
  4487.         paper
  4488.  
  4489.         finnish (fi)
  4490.  
  4491.         french (fr)
  4492.  
  4493.         german (de)
  4494.  
  4495.         italian (it)
  4496.  
  4497.         norwegian (no)
  4498.  
  4499.         portuguese (pt)
  4500.  
  4501.         russian (ru)
  4502.  
  4503.         spanish (es)
  4504.  
  4505.         swedish (sv)
  4506.  
  4507.         Parameters:
  4508.         -----------
  4509.  
  4510.         Xapian::InvalidArgumentError:  is thrown if language isn't recognised.
  4511.  
  4512.         """
  4513.         _xapian.Stem_swiginit(self, _xapian.new_Stem(*args))
  4514.  
  4515.     __swig_destroy__ = _xapian.delete_Stem
  4516.     
  4517.     def __str__(*args):
  4518.         '''
  4519.         Return a string describing this object.
  4520.  
  4521.         std::string Xapian::Stem::get_description() const 
  4522.         '''
  4523.         return _xapian.Stem___str__(*args)
  4524.  
  4525.     get_available_languages = staticmethod(_xapian.Stem_get_available_languages)
  4526.     
  4527.     def get_description(*args):
  4528.         '''
  4529.         Return a string describing this object.
  4530.  
  4531.         std::string Xapian::Stem::get_description() const 
  4532.         '''
  4533.         return _xapian.Stem_get_description(*args)
  4534.  
  4535.  
  4536. Stem.__call__ = new_instancemethod(_xapian.Stem___call__, None, Stem)
  4537. Stem.__str__ = new_instancemethod(_xapian.Stem___str__, None, Stem)
  4538. Stem.get_description = new_instancemethod(_xapian.Stem_get_description, None, Stem)
  4539. Stem_swigregister = _xapian.Stem_swigregister
  4540. Stem_swigregister(Stem)
  4541. Stem_get_available_languages = _xapian.Stem_get_available_languages
  4542.  
  4543. class TermGenerator(object):
  4544.     '''
  4545.     Parses a piece of text and generate terms.
  4546.  
  4547.     This module takes a piece of text and parses it to produce words which
  4548.     are then used to generate suitable terms for indexing. The terms
  4549.     generated are suitable for use with Query objects produced by the
  4550.     QueryParser class. 
  4551.     '''
  4552.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  4553.     __repr__ = _swig_repr
  4554.     
  4555.     def __init__(self, *args):
  4556.         '''
  4557.         Default constructor.
  4558.  
  4559.         Xapian::TermGenerator::TermGenerator() 
  4560.         '''
  4561.         _xapian.TermGenerator_swiginit(self, _xapian.new_TermGenerator(*args))
  4562.  
  4563.     __swig_destroy__ = _xapian.delete_TermGenerator
  4564.     
  4565.     def set_stemmer(*args):
  4566.         '''
  4567.         Set the Xapian::Stem object to be used for generating stemmed terms.
  4568.  
  4569.         void Xapian::TermGenerator::set_stemmer(const Xapian::Stem &stemmer)
  4570.  
  4571.         '''
  4572.         return _xapian.TermGenerator_set_stemmer(*args)
  4573.  
  4574.     
  4575.     def set_stopper(*args):
  4576.         '''
  4577.         Set the Xapian::Stopper object to be used for identifying stopwords.
  4578.  
  4579.         void Xapian::TermGenerator::set_stopper(const Xapian::Stopper
  4580.         *stop=NULL) 
  4581.         '''
  4582.         return _xapian.TermGenerator_set_stopper(*args)
  4583.  
  4584.     
  4585.     def set_document(*args):
  4586.         '''
  4587.         Set the current document.
  4588.  
  4589.         void Xapian::TermGenerator::set_document(const Xapian::Document &doc)
  4590.  
  4591.         '''
  4592.         return _xapian.TermGenerator_set_document(*args)
  4593.  
  4594.     
  4595.     def get_document(*args):
  4596.         '''
  4597.         Get the current document.
  4598.  
  4599.         const Xapian::Document& Xapian::TermGenerator::get_document() const 
  4600.         '''
  4601.         return _xapian.TermGenerator_get_document(*args)
  4602.  
  4603.     
  4604.     def set_database(*args):
  4605.         '''
  4606.         Set the database to index spelling data to.
  4607.  
  4608.         void Xapian::TermGenerator::set_database(const
  4609.         Xapian::WritableDatabase &db) 
  4610.         '''
  4611.         return _xapian.TermGenerator_set_database(*args)
  4612.  
  4613.     FLAG_SPELLING = _xapian.TermGenerator_FLAG_SPELLING
  4614.     
  4615.     def set_flags(*args):
  4616.         '''
  4617.         Set flags.
  4618.  
  4619.         flags Xapian::TermGenerator::set_flags(flags toggle, flags
  4620.         mask=flags(0))
  4621.  
  4622.         The new value of flags is: (flags & mask) ^ toggle
  4623.  
  4624.         To just set the flags, pass the new flags in toggle and the default
  4625.         value for mask.
  4626.  
  4627.         Parameters:
  4628.         -----------
  4629.  
  4630.         toggle:  Flags to XOR.
  4631.  
  4632.         mask:  Flags to AND with first.
  4633.  
  4634.         The old flags setting. 
  4635.         '''
  4636.         return _xapian.TermGenerator_set_flags(*args)
  4637.  
  4638.     
  4639.     def index_text(*args):
  4640.         '''
  4641.         Index some text in a std::string.
  4642.  
  4643.         void Xapian::TermGenerator::index_text(const std::string &text,
  4644.         Xapian::termcount weight=1, const std::string &prefix="")
  4645.  
  4646.         Parameters:
  4647.         -----------
  4648.  
  4649.         weight:  The wdf increment (default 1).
  4650.  
  4651.         prefix:  The term prefix to use (default is no prefix). 
  4652.         '''
  4653.         return _xapian.TermGenerator_index_text(*args)
  4654.  
  4655.     
  4656.     def index_text_without_positions(*args):
  4657.         '''
  4658.         Index some text in a std::string without positional information.
  4659.  
  4660.         void Xapian::TermGenerator::index_text_without_positions(const
  4661.         std::string &text, Xapian::termcount weight=1, const std::string
  4662.         &prefix="")
  4663.  
  4664.         Just like index_text, but no positional information is generated. This
  4665.         means that the database will be significantly smaller, but that phrase
  4666.         searching and NEAR won\'t be supported. 
  4667.         '''
  4668.         return _xapian.TermGenerator_index_text_without_positions(*args)
  4669.  
  4670.     
  4671.     def increase_termpos(*args):
  4672.         '''
  4673.         Increase the termpos used by index_text by delta.
  4674.  
  4675.         void Xapian::TermGenerator::increase_termpos(Xapian::termcount
  4676.         delta=100)
  4677.  
  4678.         This can be used to prevent phrase searches from spanning two
  4679.         unconnected blocks of text (e.g. the title and body text). 
  4680.         '''
  4681.         return _xapian.TermGenerator_increase_termpos(*args)
  4682.  
  4683.     
  4684.     def get_termpos(*args):
  4685.         '''
  4686.         Get the current term position.
  4687.  
  4688.         Xapian::termcount Xapian::TermGenerator::get_termpos() const 
  4689.         '''
  4690.         return _xapian.TermGenerator_get_termpos(*args)
  4691.  
  4692.     
  4693.     def set_termpos(*args):
  4694.         '''
  4695.         Set the current term position.
  4696.  
  4697.         void Xapian::TermGenerator::set_termpos(Xapian::termcount termpos) 
  4698.         '''
  4699.         return _xapian.TermGenerator_set_termpos(*args)
  4700.  
  4701.     
  4702.     def __str__(*args):
  4703.         '''
  4704.         Return a string describing this object.
  4705.  
  4706.         std::string Xapian::TermGenerator::get_description() const 
  4707.         '''
  4708.         return _xapian.TermGenerator___str__(*args)
  4709.  
  4710.  
  4711. TermGenerator.set_stemmer = new_instancemethod(_xapian.TermGenerator_set_stemmer, None, TermGenerator)
  4712. TermGenerator.set_stopper = new_instancemethod(_xapian.TermGenerator_set_stopper, None, TermGenerator)
  4713. TermGenerator.set_document = new_instancemethod(_xapian.TermGenerator_set_document, None, TermGenerator)
  4714. TermGenerator.get_document = new_instancemethod(_xapian.TermGenerator_get_document, None, TermGenerator)
  4715. TermGenerator.set_database = new_instancemethod(_xapian.TermGenerator_set_database, None, TermGenerator)
  4716. TermGenerator.set_flags = new_instancemethod(_xapian.TermGenerator_set_flags, None, TermGenerator)
  4717. TermGenerator.index_text = new_instancemethod(_xapian.TermGenerator_index_text, None, TermGenerator)
  4718. TermGenerator.index_text_without_positions = new_instancemethod(_xapian.TermGenerator_index_text_without_positions, None, TermGenerator)
  4719. TermGenerator.increase_termpos = new_instancemethod(_xapian.TermGenerator_increase_termpos, None, TermGenerator)
  4720. TermGenerator.get_termpos = new_instancemethod(_xapian.TermGenerator_get_termpos, None, TermGenerator)
  4721. TermGenerator.set_termpos = new_instancemethod(_xapian.TermGenerator_set_termpos, None, TermGenerator)
  4722. TermGenerator.__str__ = new_instancemethod(_xapian.TermGenerator___str__, None, TermGenerator)
  4723. TermGenerator_swigregister = _xapian.TermGenerator_swigregister
  4724. TermGenerator_swigregister(TermGenerator)
  4725.  
  4726. class Sorter(object):
  4727.     '''
  4728.     Virtual base class for sorter functor. 
  4729.     '''
  4730.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  4731.     __repr__ = _swig_repr
  4732.     __swig_destroy__ = _xapian.delete_Sorter
  4733.     
  4734.     def __init__(self, *args):
  4735.         if self.__class__ == Sorter:
  4736.             args = (None,) + args
  4737.         else:
  4738.             args = (self,) + args
  4739.         _xapian.Sorter_swiginit(self, _xapian.new_Sorter(*args))
  4740.  
  4741.     
  4742.     def __disown__(self):
  4743.         self.this.disown()
  4744.         _xapian.disown_Sorter(self)
  4745.         return weakref_proxy(self)
  4746.  
  4747.  
  4748. Sorter.__call__ = new_instancemethod(_xapian.Sorter___call__, None, Sorter)
  4749. Sorter_swigregister = _xapian.Sorter_swigregister
  4750. Sorter_swigregister(Sorter)
  4751.  
  4752. class MultiValueSorter(Sorter):
  4753.     '''
  4754.     Sorter subclass which sorts by a several values.
  4755.  
  4756.     Results are ordered by the first value. In the event of a tie, the
  4757.     second is used. If this is the same for both, the third is used, and
  4758.     so on. 
  4759.     '''
  4760.     thisown = _swig_property((lambda x: x.this.own()), (lambda x, v: x.this.own(v)), doc = 'The membership flag')
  4761.     __repr__ = _swig_repr
  4762.     
  4763.     def __init__(self, *args):
  4764.         '''
  4765.         Xapian::MultiValueSorter::MultiValueSorter(Iterator begin, Iterator
  4766.         end) 
  4767.         '''
  4768.         _xapian.MultiValueSorter_swiginit(self, _xapian.new_MultiValueSorter(*args))
  4769.  
  4770.     
  4771.     def add(*args):
  4772.         '''
  4773.         void
  4774.         Xapian::MultiValueSorter::add(Xapian::valueno valno, bool
  4775.         forward=true) 
  4776.         '''
  4777.         return _xapian.MultiValueSorter_add(*args)
  4778.  
  4779.     __swig_destroy__ = _xapian.delete_MultiValueSorter
  4780.  
  4781. MultiValueSorter.add = new_instancemethod(_xapian.MultiValueSorter_add, None, MultiValueSorter)
  4782. MultiValueSorter_swigregister = _xapian.MultiValueSorter_swigregister
  4783. MultiValueSorter_swigregister(MultiValueSorter)
  4784. __docformat__ = 'restructuredtext en'
  4785.  
  4786. class _SequenceMixIn(object):
  4787.     '''Simple mixin class which provides a sequence API to a class.
  4788.  
  4789.     This is used to support the legacy API to iterators used for releases of
  4790.     Xapian earlier than 1.0.  It will be removed once this legacy API is
  4791.     removed in release 1.1.
  4792.  
  4793.     '''
  4794.     __slots__ = ('_sequence_items',)
  4795.     
  4796.     def __init__(self, *args):
  4797.         """Initialise the sequence.
  4798.  
  4799.         *args holds the list of properties or property names to be returned, in
  4800.         the order they are returned by the sequence API.
  4801.         
  4802.         If an item in the list is a string, it is considered to be a property
  4803.         name; otherwise, it is considered to be a property value, and is
  4804.         returned without doing an attribute lookup.  (Yes, this is a nasty
  4805.         hack.  No, I don't care, because this is only a temporary piece of
  4806.         internal code.)
  4807.  
  4808.         """
  4809.         self._sequence_items = args
  4810.  
  4811.     
  4812.     def __len__(self):
  4813.         """Get the length of the sequence.
  4814.  
  4815.         Doesn't evaluate any of the lazily evaluated properties.
  4816.  
  4817.         """
  4818.         return len(self._sequence_items)
  4819.  
  4820.     
  4821.     def _get_single_item(self, index):
  4822.         '''Get a single item.
  4823.  
  4824.         Used by __getitem__ to get individual items.
  4825.  
  4826.         '''
  4827.         if not isinstance(index, basestring):
  4828.             return index
  4829.         
  4830.         return getattr(self, index)
  4831.  
  4832.     
  4833.     def __getitem__(self, key):
  4834.         '''Get an item, or a slice of items, from the sequence.
  4835.  
  4836.         If any of the items are lazily evaluated properties, they will be
  4837.         evaluated here.
  4838.  
  4839.         '''
  4840.         return self._get_single_item(self._sequence_items[key])
  4841.  
  4842.     
  4843.     def __iter__(self):
  4844.         '''Make an iterator for over the sequence.
  4845.  
  4846.         This simply copies the items into a list, and returns an iterator over
  4847.         it.  Any lazily evaluated properties will be evaluated here.
  4848.  
  4849.         '''
  4850.         return iter(self[:])
  4851.  
  4852.  
  4853.  
  4854. class MSetItem(_SequenceMixIn):
  4855.     '''An item returned from iteration of the MSet.
  4856.  
  4857.     The item supports access to the following attributes and properties:
  4858.  
  4859.      - `docid`: The Xapian document ID corresponding to this MSet item.
  4860.      - `weight`: The weight corresponding to this MSet item.
  4861.      - `rank`: The rank of this MSet item.  The rank is the position in the
  4862.        total set of matching documents of this item.  The highest document is
  4863.        given a rank of 0.  If the MSet did not start at the highest matching
  4864.        document, because a non-zero \'start\' parameter was supplied to
  4865.        get_mset(), the first document in the MSet will have a rank greater than
  4866.        0 (in fact, it will be equal to the value of \'start\' supplied to
  4867.        get_mset()).
  4868.      - `percent`: The percentage score assigned to this MSet item.
  4869.      - `document`: The document for this MSet item.  This can be used to access
  4870.        the document data, or any other information stored in the document (such
  4871.        as term lists).  It is lazily evaluated.
  4872.      - `collapse_key`: The value of the key which was used for collapsing.
  4873.      - `collapse_count`: An estimate of the number of documents that have been
  4874.        collapsed into this one.
  4875.  
  4876.     The collapse count estimate will always be less than or equal to the actual
  4877.     number of other documents satisfying the match criteria with the same
  4878.     collapse key as this document.  If may be 0 even though there are other
  4879.     documents with the same collapse key which satisfying the match criteria.
  4880.     However if this method returns non-zero, there definitely are other such
  4881.     documents.  So this method may be used to inform the user that there are
  4882.     "at least N other matches in this group", or to control whether to offer a
  4883.     "show other documents in this group" feature (but note that it may not
  4884.     offer it in every case where it would show other documents).
  4885.  
  4886.     '''
  4887.     __slots__ = ('_mset', '_firstitem', 'docid', 'weight', 'rank', 'percent', 'collapse_key', 'collapse_count', '_document')
  4888.     
  4889.     def __init__(self, iter, mset):
  4890.         self._mset = mset
  4891.         self._firstitem = self._mset.get_firstitem()
  4892.         self.docid = iter.get_docid()
  4893.         self.weight = iter.get_weight()
  4894.         self.rank = iter.get_rank()
  4895.         self.percent = iter.get_percent()
  4896.         self.collapse_key = iter.get_collapse_key()
  4897.         self.collapse_count = iter.get_collapse_count()
  4898.         self._document = None
  4899.         _SequenceMixIn.__init__(self, 'docid', 'weight', 'rank', 'percent', 'document')
  4900.  
  4901.     
  4902.     def _get_document(self):
  4903.         if self._document is None:
  4904.             self._document = self._mset._get_hit_internal(self.rank - self._firstitem).get_document()
  4905.         
  4906.         return self._document
  4907.  
  4908.     
  4909.     def get_docid(self):
  4910.         '''Deprecated method: use the `docid` property instead.'''
  4911.         return self.docid
  4912.  
  4913.     
  4914.     def get_weight(self):
  4915.         '''Deprecated method: use the `weight` property instead.'''
  4916.         return self.weight
  4917.  
  4918.     
  4919.     def get_rank(self):
  4920.         '''Deprecated method: use the `rank` property instead.'''
  4921.         return self.rank
  4922.  
  4923.     
  4924.     def get_percent(self):
  4925.         '''Deprecated method: use the `percent` property instead.'''
  4926.         return self.percent
  4927.  
  4928.     
  4929.     def get_collapse_key(self):
  4930.         '''Deprecated method: use the `collapse_key` property instead.'''
  4931.         return self.collapse_key
  4932.  
  4933.     
  4934.     def get_collapse_count(self):
  4935.         '''Deprecated method: use the `collapse_count` property instead.'''
  4936.         return self.collapse_count
  4937.  
  4938.     
  4939.     def get_document(self):
  4940.         '''Deprecated method: use the `document` property instead.'''
  4941.         return self.document
  4942.  
  4943.     document = property(_get_document, doc = 'The document object corresponding to this MSet item.')
  4944.  
  4945.  
  4946. class MSetIter(object):
  4947.     '''An iterator over the items in an MSet.
  4948.  
  4949.     The iterator will return MSetItem objects, which will be evaluated lazily
  4950.     where appropriate.
  4951.  
  4952.     '''
  4953.     __slots__ = ('_iter', '_end', '_mset')
  4954.     
  4955.     def __init__(self, mset):
  4956.         self._iter = mset.begin()
  4957.         self._end = mset.end()
  4958.         self._mset = mset
  4959.  
  4960.     
  4961.     def __iter__(self):
  4962.         return self
  4963.  
  4964.     
  4965.     def next(self):
  4966.         if self._iter == self._end:
  4967.             raise StopIteration
  4968.         else:
  4969.             r = MSetItem(self._iter, self._mset)
  4970.             self._iter.next()
  4971.             return r
  4972.  
  4973.  
  4974.  
  4975. def _mset_gen_iter(self):
  4976.     '''Return an iterator over the MSet.
  4977.  
  4978.     The iterator will return MSetItem objects, which will be evaluated lazily
  4979.     where appropriate.
  4980.  
  4981.     '''
  4982.     return MSetIter(self)
  4983.  
  4984. MSet.__iter__ = _mset_gen_iter
  4985. MSet.__len__ = MSet.size
  4986. MSet._get_hit_internal = MSet.get_hit
  4987.  
  4988. def _mset_getitem(self, index):
  4989.     '''Get an item from the MSet.
  4990.  
  4991.     The supplied index is relative to the start of the MSet, not the absolute
  4992.     rank of the item.
  4993.  
  4994.     Returns an MSetItem.
  4995.  
  4996.     '''
  4997.     if index < 0:
  4998.         index += len(self)
  4999.     
  5000.     if index < 0 or index >= len(self):
  5001.         raise IndexError('Mset index out of range')
  5002.     
  5003.     return MSetItem(self._get_hit_internal(index), self)
  5004.  
  5005. MSet.__getitem__ = _mset_getitem
  5006. MSet.get_hit = _mset_getitem
  5007.  
  5008. def _mset_contains(self, index):
  5009.     '''Check if the Mset contains an item at the given index
  5010.  
  5011.     The supplied index is relative to the start of the MSet, not the absolute
  5012.     rank of the item.
  5013.  
  5014.     '''
  5015.     if key >= 0:
  5016.         pass
  5017.     return key < len(self)
  5018.  
  5019. MSet.__contains__ = _mset_contains
  5020.  
  5021. class ESetItem(_SequenceMixIn):
  5022.     '''An item returned from iteration of the ESet.
  5023.  
  5024.     The item supports access to the following attributes:
  5025.  
  5026.      - `term`: The term corresponding to this ESet item.
  5027.      - `weight`: The weight corresponding to this ESet item.
  5028.  
  5029.     '''
  5030.     __slots__ = ('term', 'weight')
  5031.     
  5032.     def __init__(self, iter):
  5033.         self.term = iter.get_term()
  5034.         self.weight = iter.get_weight()
  5035.         _SequenceMixIn.__init__(self, 'term', 'weight')
  5036.  
  5037.  
  5038.  
  5039. class ESetIter(object):
  5040.     '''An iterator over the items in an ESet.
  5041.  
  5042.     The iterator will return ESetItem objects.
  5043.  
  5044.     '''
  5045.     __slots__ = ('_iter', '_end')
  5046.     
  5047.     def __init__(self, eset):
  5048.         self._iter = eset.begin()
  5049.         self._end = eset.end()
  5050.  
  5051.     
  5052.     def __iter__(self):
  5053.         return self
  5054.  
  5055.     
  5056.     def next(self):
  5057.         if self._iter == self._end:
  5058.             raise StopIteration
  5059.         else:
  5060.             r = ESetItem(self._iter)
  5061.             self._iter.next()
  5062.             return r
  5063.  
  5064.  
  5065.  
  5066. def _eset_gen_iter(self):
  5067.     '''Return an iterator over the ESet.
  5068.     
  5069.     The iterator will return ESetItem objects.
  5070.  
  5071.     '''
  5072.     return ESetIter(self)
  5073.  
  5074. ESet.__iter__ = _eset_gen_iter
  5075. ESet.__len__ = ESet.size
  5076.  
  5077. class TermListItem(_SequenceMixIn):
  5078.     '''An item returned from iteration of a term list.
  5079.  
  5080.     The item supports access to the following attributes and properties:
  5081.  
  5082.      - `term`: The term corresponding to this TermListItem.
  5083.      - `wdf`: The within document frequency of this term.
  5084.      - `termfreq`: The number of documents in the collection which are indexed
  5085.        by the term
  5086.      - `positer`: An iterator over the positions which the term appears at in
  5087.        the document.  This is only available until the iterator which returned
  5088.        this item next moves.
  5089.  
  5090.     '''
  5091.     __slots__ = ('_iter', 'term', '_wdf', '_termfreq')
  5092.     
  5093.     def __init__(self, iter, term):
  5094.         self._iter = iter
  5095.         self.term = term
  5096.         self._wdf = None
  5097.         self._termfreq = None
  5098.         if iter._has_wdf == TermIter.EAGER:
  5099.             self._wdf = iter._iter.get_wdf()
  5100.         
  5101.         if iter._has_termfreq == TermIter.EAGER:
  5102.             self._termfreq = iter._iter.get_termfreq()
  5103.         
  5104.         sequence = [
  5105.             'term',
  5106.             'wdf',
  5107.             'termfreq',
  5108.             'positer']
  5109.         if iter._has_wdf == TermIter.INVALID:
  5110.             sequence[1] = 0
  5111.         
  5112.         if iter._has_termfreq == TermIter.INVALID:
  5113.             sequence[2] = 0
  5114.         
  5115.         if iter._has_positions == TermIter.INVALID:
  5116.             sequence[3] = PositionIter()
  5117.         
  5118.         _SequenceMixIn.__init__(self, *sequence)
  5119.  
  5120.     
  5121.     def _get_wdf(self):
  5122.         """Get the within-document-frequency of the current term.
  5123.  
  5124.         This will raise a InvalidOperationError exception if the iterator this
  5125.         item came from doesn't support within-document-frequencies.
  5126.  
  5127.         """
  5128.         if self._wdf is None:
  5129.             if self._iter._has_wdf == TermIter.INVALID:
  5130.                 raise InvalidOperationError('Iterator does not support wdfs')
  5131.             
  5132.             if self.term is not self._iter._lastterm:
  5133.                 raise InvalidOperationError('Iterator has moved, and does not support random access')
  5134.             
  5135.             self._wdf = self._iter._iter.get_wdf()
  5136.         
  5137.         return self._wdf
  5138.  
  5139.     wdf = property(_get_wdf, doc = "The within-document-frequency of the current term (if meaningful).\n\n    This will raise a InvalidOperationError exception if the iterator\n    this item came from doesn't support within-document-frequencies.\n\n    ")
  5140.     
  5141.     def _get_termfreq(self):
  5142.         """Get the term frequency.
  5143.  
  5144.         This is the number of documents in the collection which are indexed by
  5145.         the term.
  5146.  
  5147.         This will raise a InvalidOperationError exception if the iterator this
  5148.         item came from doesn't support term frequencies.
  5149.  
  5150.         """
  5151.         if self._termfreq is None:
  5152.             if self._iter._has_termfreq == TermIter.INVALID:
  5153.                 raise InvalidOperationError('Iterator does not support term frequencies')
  5154.             
  5155.             if self.term is not self._iter._lastterm:
  5156.                 raise InvalidOperationError('Iterator has moved, and does not support random access')
  5157.             
  5158.             self._termfreq = self._iter._iter.get_termfreq()
  5159.         
  5160.         return self._termfreq
  5161.  
  5162.     termfreq = property(_get_termfreq, doc = "The term frequency of the current term (if meaningful).\n\n    This is the number of documents in the collection which are indexed by the\n    term.\n\n    This will raise a InvalidOperationError exception if the iterator\n    this item came from doesn't support term frequencies.\n\n    ")
  5163.     
  5164.     def _get_positer(self):
  5165.         """Get a position list iterator.
  5166.  
  5167.         The iterator will return integers representing the positions that the
  5168.         term occurs at.
  5169.  
  5170.         This will raise a InvalidOperationError exception if the iterator this
  5171.         item came from doesn't support position lists, or if the iterator has
  5172.         moved on since the item was returned from it.
  5173.  
  5174.         """
  5175.         if self._iter._has_positions == TermIter.INVALID:
  5176.             raise InvalidOperationError('Iterator does not support position lists')
  5177.         
  5178.         if self.term is not self._iter._lastterm:
  5179.             raise InvalidOperationError('Iterator has moved, and does not support random access')
  5180.         
  5181.         return PositionIter(self._iter._iter.positionlist_begin(), self._iter._iter.positionlist_end())
  5182.  
  5183.     positer = property(_get_positer, doc = "A position iterator for the current term (if meaningful).\n\n    The iterator will return integers representing the positions that the term\n    occurs at.\n\n    This will raise a InvalidOperationError exception if the iterator this item\n    came from doesn't support position lists, or if the iterator has moved on\n    since the item was returned from it.\n\n    ")
  5184.  
  5185.  
  5186. class TermIter(object):
  5187.     '''An iterator over a term list.
  5188.  
  5189.     The iterator will return TermListItem objects, which will be evaluated
  5190.     lazily where appropriate.
  5191.  
  5192.     '''
  5193.     __slots__ = ('_iter', '_end', '_has_termfreq', '_has_wdf', '_has_positions', '_return_strings', '_lastterm', '_moved')
  5194.     INVALID = 0
  5195.     LAZY = 1
  5196.     EAGER = 2
  5197.     
  5198.     def __init__(self, start, end, has_termfreq = INVALID, has_wdf = INVALID, has_positions = INVALID, return_strings = False):
  5199.         self._iter = start
  5200.         self._end = end
  5201.         self._has_termfreq = has_termfreq
  5202.         self._has_wdf = has_wdf
  5203.         self._has_positions = has_positions
  5204.         if not has_positions != TermIter.EAGER:
  5205.             raise AssertionError
  5206.         self._return_strings = return_strings
  5207.         self._lastterm = None
  5208.         self._moved = True
  5209.  
  5210.     
  5211.     def __iter__(self):
  5212.         return self
  5213.  
  5214.     
  5215.     def next(self):
  5216.         if not self._moved:
  5217.             self._iter.next()
  5218.             self._moved = True
  5219.         
  5220.         if self._iter == self._end:
  5221.             self._lastterm = None
  5222.             raise StopIteration
  5223.         else:
  5224.             self._lastterm = self._iter.get_term()
  5225.             self._moved = False
  5226.             if self._return_strings:
  5227.                 return self._lastterm
  5228.             
  5229.             return TermListItem(self, self._lastterm)
  5230.  
  5231.     
  5232.     def skip_to(self, term):
  5233.         '''Skip the iterator forward.
  5234.  
  5235.         The iterator is advanced to the first term at or after the current
  5236.         position which is greater than or equal to the supplied term.
  5237.  
  5238.         If there are no such items, this will raise StopIteration.
  5239.  
  5240.         This returns the item which the iterator is moved to.  The subsequent
  5241.         item will be returned the next time that next() is called (unless
  5242.         skip_to() is called again first).
  5243.  
  5244.         '''
  5245.         if self._iter != self._end:
  5246.             self._iter.skip_to(term)
  5247.         
  5248.         if self._iter == self._end:
  5249.             self._lastterm = None
  5250.             self._moved = True
  5251.             raise StopIteration
  5252.         
  5253.         newterm = self._iter.get_term()
  5254.         if newterm != self._lastterm:
  5255.             self._lastterm = newterm
  5256.         
  5257.         self._moved = False
  5258.         if self._return_strings:
  5259.             return self._lastterm
  5260.         
  5261.         return TermListItem(self, self._lastterm)
  5262.  
  5263.  
  5264.  
  5265. def _enquire_gen_iter(self, which):
  5266.     '''Get an iterator over the terms which match a given match set item.
  5267.  
  5268.     The match set item to consider is specified by the `which` parameter, which
  5269.     may be a document ID, or an MSetItem object.
  5270.  
  5271.     The iterator will return string objects.
  5272.  
  5273.     '''
  5274.     if isinstance(which, MSetItem):
  5275.         which = which.docid
  5276.     
  5277.     return TermIter(self.get_matching_terms_begin(which), self.get_matching_terms_end(which), return_strings = True)
  5278.  
  5279. Enquire.matching_terms = _enquire_gen_iter
  5280. Enquire.get_matching_terms = _enquire_gen_iter
  5281.  
  5282. def _query_gen_iter(self):
  5283.     '''Get an iterator over the terms in a query.
  5284.  
  5285.     The iterator will return string objects.
  5286.  
  5287.     '''
  5288.     return TermIter(self.get_terms_begin(), self.get_terms_end(), return_strings = True)
  5289.  
  5290. Query.__iter__ = _query_gen_iter
  5291.  
  5292. def _database_gen_allterms_iter(self, prefix = None):
  5293.     '''Get an iterator over all the terms in the database.
  5294.  
  5295.     The iterator will return TermListItem objects, but these will not support
  5296.     access to wdf, or position information.
  5297.  
  5298.     Access to term frequency information is only available until the iterator
  5299.     has moved on.
  5300.  
  5301.     If prefix is supplied, only terms which start with that prefix will be
  5302.     returned.
  5303.  
  5304.     '''
  5305.     if prefix is None:
  5306.         return TermIter(self.allterms_begin(), self.allterms_end(), has_termfreq = TermIter.LAZY)
  5307.     else:
  5308.         return TermIter(self.allterms_begin(prefix), self.allterms_end(prefix), has_termfreq = TermIter.LAZY)
  5309.  
  5310. Database.__iter__ = _database_gen_allterms_iter
  5311. Database.allterms = _database_gen_allterms_iter
  5312.  
  5313. def _database_gen_termlist_iter(self, docid):
  5314.     '''Get an iterator over all the terms which index a given document ID.
  5315.  
  5316.     The iterator will return TermListItem objects.
  5317.  
  5318.     Access to term frequency and position information is only available until
  5319.     the iterator has moved on.
  5320.  
  5321.     '''
  5322.     return TermIter(self.termlist_begin(docid), self.termlist_end(docid), has_termfreq = TermIter.LAZY, has_wdf = TermIter.EAGER, has_positions = TermIter.LAZY)
  5323.  
  5324. Database.termlist = _database_gen_termlist_iter
  5325.  
  5326. def _database_gen_spellings_iter(self):
  5327.     '''Get an iterator which returns all the spelling correction targets
  5328.  
  5329.     The iterator will return TermListItem objects.  Only the term frequency is
  5330.     available; wdf and positions are not meaningful.
  5331.  
  5332.     '''
  5333.     return TermIter(self.spellings_begin(), self.spellings_end(), has_termfreq = TermIter.EAGER, has_wdf = TermIter.INVALID, has_positions = TermIter.INVALID)
  5334.  
  5335. Database.spellings = _database_gen_spellings_iter
  5336.  
  5337. def _database_gen_synonyms_iter(self, term):
  5338.     '''Get an iterator which returns all the synonyms for a given term.
  5339.  
  5340.     The term to return synonyms for is specified by the `term` parameter.
  5341.  
  5342.     The iterator will return string objects.
  5343.  
  5344.     '''
  5345.     return TermIter(self.synonyms_begin(term), self.synonyms_end(term), return_strings = True)
  5346.  
  5347. Database.synonyms = _database_gen_synonyms_iter
  5348.  
  5349. def _database_gen_synonym_keys_iter(self, prefix = ''):
  5350.     '''Get an iterator which returns all the terms which have synonyms.
  5351.  
  5352.     The iterator will return string objects.
  5353.  
  5354.     If `prefix` is non-empty, only terms with this prefix are returned.
  5355.  
  5356.     '''
  5357.     return TermIter(self.synonym_keys_begin(prefix), self.synonym_keys_end(prefix), return_strings = True)
  5358.  
  5359. Database.synonym_keys = _database_gen_synonym_keys_iter
  5360.  
  5361. def _document_gen_termlist_iter(self):
  5362.     '''Get an iterator over all the terms in a document.
  5363.  
  5364.     The iterator will return TermListItem objects.
  5365.  
  5366.     Access to term frequency and position information is only available until
  5367.     the iterator has moved on.
  5368.  
  5369.     Note that term frequency information is only meaningful for a document
  5370.     retrieved from a database.  If term frequency information is requested for
  5371.     a document which was freshly created, an InvalidOperationError will be
  5372.     raised.
  5373.  
  5374.     '''
  5375.     return TermIter(self.termlist_begin(), self.termlist_end(), has_termfreq = TermIter.LAZY, has_wdf = TermIter.EAGER, has_positions = TermIter.LAZY)
  5376.  
  5377. Document.__iter__ = _document_gen_termlist_iter
  5378. Document.termlist = _document_gen_termlist_iter
  5379.  
  5380. def _queryparser_gen_stoplist_iter(self):
  5381.     '''Get an iterator over all the stopped terms from the previous query.
  5382.     
  5383.     This returns an iterator over all the terms which were omitted from the
  5384.     previously parsed query due to being considered to be stopwords.  Each
  5385.     instance of a word omitted from the query is represented in the returned
  5386.     list, in the order in which the
  5387.  
  5388.     The iterator will return string objects.
  5389.  
  5390.     '''
  5391.     return TermIter(self.stoplist_begin(), self.stoplist_end(), return_strings = True)
  5392.  
  5393. QueryParser.stoplist = _queryparser_gen_stoplist_iter
  5394.  
  5395. def _queryparser_gen_unstemlist_iter(self, tname):
  5396.     '''Get an iterator over all the unstemmed forms of a stemmed term.
  5397.     
  5398.     This returns an iterator which returns all the unstemmed words which were
  5399.     stemmed to the stemmed form specifed by `tname` when parsing the previous
  5400.     query.  Each instance of a word which stems to `tname` is returned by the
  5401.     iterator in the order in which the words appeared in the query - an
  5402.     individual unstemmed word may thus occur multiple times.
  5403.  
  5404.     The iterator will return string objects.
  5405.  
  5406.     '''
  5407.     return TermIter(self.unstem_begin(tname), self.unstem_end(tname), return_strings = True)
  5408.  
  5409. QueryParser.unstemlist = _queryparser_gen_unstemlist_iter
  5410.  
  5411. class PostingItem(_SequenceMixIn):
  5412.     '''An item returned from iteration of a posting list.
  5413.  
  5414.     The item supports access to the following attributes and properties:
  5415.  
  5416.      - `docid`: The document ID corresponding to this PostingItem.
  5417.      - `doclength`: The length of the document corresponding to this
  5418.        PostingItem.
  5419.      - `wdf`: The within document frequency of the term which the posting list
  5420.        is for in the document corresponding to this PostingItem.
  5421.      - `positer`: An iterator over the positions which the term corresponing to
  5422.        this posting list occurs at in the document corresponding to this
  5423.        PostingItem.  This is only available until the iterator which returned
  5424.        this item next moves.
  5425.  
  5426.     '''
  5427.     __slots__ = ('_iter', 'docid', 'doclength', 'wdf')
  5428.     
  5429.     def __init__(self, iter):
  5430.         self._iter = iter
  5431.         self.docid = iter._iter.get_docid()
  5432.         self.doclength = iter._iter.get_doclength()
  5433.         self.wdf = iter._iter.get_wdf()
  5434.         sequence = [
  5435.             'docid',
  5436.             'doclength',
  5437.             'wdf',
  5438.             'positer']
  5439.         if not iter._has_positions:
  5440.             sequence[3] = PositionIter()
  5441.         
  5442.         _SequenceMixIn.__init__(self, *sequence)
  5443.  
  5444.     
  5445.     def _get_positer(self):
  5446.         """Get a position list iterator.
  5447.  
  5448.         The iterator will return integers representing the positions that the
  5449.         term occurs at in the document corresponding to this PostingItem.
  5450.  
  5451.         This will raise a InvalidOperationError exception if the iterator this
  5452.         item came from doesn't support position lists, or if the iterator has
  5453.         moved on since the item was returned from it.
  5454.  
  5455.         """
  5456.         if not self._iter._has_positions:
  5457.             raise InvalidOperationError('Iterator does not support position lists')
  5458.         
  5459.         if self._iter._iter == self._iter._end or self.docid != self._iter._iter.get_docid():
  5460.             raise InvalidOperationError('Iterator has moved, and does not support random access')
  5461.         
  5462.         return PositionIter(self._iter._iter.positionlist_begin(), self._iter._iter.positionlist_end())
  5463.  
  5464.     positer = property(_get_positer, doc = "A position iterator for the current posting (if meaningful).\n\n    The iterator will return integers representing the positions that the term\n    occurs at.\n\n    This will raise a InvalidOperationError exception if the iterator this item\n    came from doesn't support position lists, or if the iterator has moved on\n    since the item was returned from it.\n\n    ")
  5465.  
  5466.  
  5467. class PostingIter(object):
  5468.     '''An iterator over a posting list.
  5469.  
  5470.     The iterator will return PostingItem objects, which will be evaluated
  5471.     lazily where appropriate.
  5472.  
  5473.     '''
  5474.     __slots__ = ('_iter', '_end', '_has_positions', '_moved')
  5475.     
  5476.     def __init__(self, start, end, has_positions = False):
  5477.         self._iter = start
  5478.         self._end = end
  5479.         self._has_positions = has_positions
  5480.         self._moved = True
  5481.  
  5482.     
  5483.     def __iter__(self):
  5484.         return self
  5485.  
  5486.     
  5487.     def next(self):
  5488.         if not self._moved:
  5489.             self._iter.next()
  5490.             self._moved = True
  5491.         
  5492.         if self._iter == self._end:
  5493.             raise StopIteration
  5494.         else:
  5495.             self._moved = False
  5496.             return PostingItem(self)
  5497.  
  5498.     
  5499.     def skip_to(self, docid):
  5500.         '''Skip the iterator forward.
  5501.  
  5502.         The iterator is advanced to the first document with a document ID
  5503.         which is greater than or equal to the supplied document ID.
  5504.  
  5505.         If there are no such items, this will raise StopIteration.
  5506.  
  5507.         This returns the item which the iterator is moved to.  The subsequent
  5508.         item will be returned the next time that next() is called (unless
  5509.         skip_to() is called again first).
  5510.  
  5511.         '''
  5512.         if self._iter != self._end:
  5513.             self._iter.skip_to(docid)
  5514.         
  5515.         if self._iter == self._end:
  5516.             self._moved = True
  5517.             raise StopIteration
  5518.         
  5519.         self._moved = False
  5520.         return PostingItem(self)
  5521.  
  5522.  
  5523.  
  5524. def _database_gen_postlist_iter(self, tname):
  5525.     '''Get an iterator over the postings which are indexed by a given term.
  5526.  
  5527.     If `tname` is empty, an iterator over all the documents will be returned
  5528.     (this will contain one entry for each document, will always return a wdf of
  5529.     1, and will not allow access to a position iterator).
  5530.  
  5531.     '''
  5532.     if len(tname) != 0:
  5533.         return PostingIter(self.postlist_begin(tname), self.postlist_end(tname), has_positions = True)
  5534.     else:
  5535.         return PostingIter(self.postlist_begin(tname), self.postlist_end(tname))
  5536.  
  5537. Database.postlist = _database_gen_postlist_iter
  5538.  
  5539. class PositionIter(object):
  5540.     '''An iterator over a position list.
  5541.  
  5542.     The iterator will return integers, in ascending order.
  5543.  
  5544.     '''
  5545.     
  5546.     def __init__(self, start = 0, end = 0):
  5547.         self.iter = start
  5548.         self.end = end
  5549.  
  5550.     
  5551.     def __iter__(self):
  5552.         return self
  5553.  
  5554.     
  5555.     def next(self):
  5556.         if self.iter == self.end:
  5557.             raise StopIteration
  5558.         else:
  5559.             r = self.iter.get_termpos()
  5560.             self.iter.next()
  5561.             return r
  5562.  
  5563.  
  5564.  
  5565. def _database_gen_positionlist_iter(self, docid, tname):
  5566.     '''Get an iterator over all the positions in a given document of a term.
  5567.     
  5568.     The iterator will return integers, in ascending order.
  5569.  
  5570.     '''
  5571.     return PositionIter(self.positionlist_begin(docid, tname), self.positionlist_end(docid, tname))
  5572.  
  5573. Database.positionlist = _database_gen_positionlist_iter
  5574.  
  5575. class ValueItem(_SequenceMixIn):
  5576.     '''An item returned from iteration of the values in a document.
  5577.  
  5578.     The item supports access to the following attributes:
  5579.  
  5580.      - `num`: The number of the value.
  5581.      - `value`: The contents of the value.
  5582.  
  5583.     '''
  5584.     __slots__ = ('num', 'value')
  5585.     
  5586.     def __init__(self, num, value):
  5587.         self.num = num
  5588.         self.value = value
  5589.         _SequenceMixIn.__init__(self, 'num', 'value')
  5590.  
  5591.  
  5592.  
  5593. class ValueIter(object):
  5594.     '''An iterator over all the values stored in a document.
  5595.  
  5596.     The iterator will return ValueItem objects, in ascending order of value number.
  5597.  
  5598.     '''
  5599.     
  5600.     def __init__(self, start, end):
  5601.         self.iter = start
  5602.         self.end = end
  5603.  
  5604.     
  5605.     def __iter__(self):
  5606.         return self
  5607.  
  5608.     
  5609.     def next(self):
  5610.         if self.iter == self.end:
  5611.             raise StopIteration
  5612.         else:
  5613.             r = ValueItem(self.iter.get_valueno(), self.iter.get_value())
  5614.             self.iter.next()
  5615.             return r
  5616.  
  5617.  
  5618.  
  5619. def _document_gen_values_iter(self):
  5620.     '''Get an iterator over all the values stored in a document.
  5621.  
  5622.     The iterator will return ValueItem objects, in ascending order of value number.
  5623.  
  5624.     '''
  5625.     return ValueIter(self.values_begin(), self.values_end())
  5626.  
  5627. Document.values = _document_gen_values_iter
  5628. __all__ = []
  5629. for item in dir():
  5630.     if item.startswith('_') and item.endswith('_swigregister') or item.endswith('Iterator'):
  5631.         continue
  5632.     
  5633.     __all__.append(item)
  5634.  
  5635. __all__ = tuple(__all__)
  5636. ValueRangeProcessor.__call__ = ValueRangeProcessor.__call
  5637.